SQL Server IF...ELSE بيان الشرط: T-SQL حدد مثال استعلام
لماذا تحتاج إلى البيانات الشرطية؟
تساعدك العبارات الشرطية في خادم SQL على تحديد منطق وإجراءات مختلفة لشروط مختلفة. يسمح لك بتنفيذ إجراءات مختلفة بناءً على الشروط المحددة في البيان. في الحياة الواقعية، تقوم بالعديد من الإجراءات التي تعتمد على نتيجة بعض الأنشطة أو المواقف الأخرى.
بعض الأمثلة في الوقت الحقيقي لبيان حالة SQL هي:
- إذا هطل المطر غدًا، سأخطط لرحلة برية.
- إذا كانت تذاكر الطيران أقل من 400 دولار من مدينتي، فسأذهب لقضاء إجازة في أوروبا، وإلا سأفضل بعض الأماكن السياحية القريبة.
هنا، يمكنك أن ترى أن إجراءً واحدًا، مثل رحلة برية أعلاه، هو تعتمد بشكل مشروط على نتيجة نشاط آخر وهو "هل ستمطر أم لا غدًا!"
وبالمثل، يوفر MS SQL أيضًا القدرة على تنفيذ عبارة T-SQL بشكل مشروط.
إذا... عبارة أخرى في SQL Server
In مرض التصلب العصبي المتعدد مزود, إذا كان غير ذلك هو نوع من عبارة شرطية.
يمكن تنفيذ أي عبارة T-SQL بشكل مشروط باستخدام إذا كان غير ذلك.
يوضح الشكل أدناه IF ELSE في خادم SQL:

- إذا تم تقييم الحالة إلى صحيح، ثم عبارات T-SQL تليها IF سيتم تنفيذ الشرط في خادم SQL.
- إذا تم تقييم الحالة إلى كاذبة، ثم عبارات T-SQL تليها الس سيتم تنفيذ الكلمة الرئيسية.
- مرة واحدة، إذا تم تنفيذ عبارات T-SQL أو عبارة ELSE T-SQL، فستستمر عبارات T-SQL غير المشروطة الأخرى في التنفيذ.
إذا... بناء الجملة والقواعد الأخرى في SQL
بناء الجملة:
IF <Condition>
{Statement | Block_of_statement}
[ ELSE
{Statement | Block_of_statement}]
قواعد:
- يجب أن يكون الشرط تعبير منطقي، أي، ينتج عن الشرط قيمة منطقية عند تقييمها.
- إذا كان بيان آخر في SQL يمكنه التعامل بشكل مشروط مع عبارة T-SQL واحدة أو كتلة من عبارات T-SQL.
- يجب أن تبدأ مجموعة البيان بالكلمة الرئيسية BEGIN وتغلق بالكلمة الرئيسية END.
- يساعد استخدام BEGIN وEND خادم SQL على تحديد كتلة البيانات التي يجب تنفيذها وفصلها عن بقية عبارات T-SQL التي ليست جزءًا من كتلة IF…ELSE T-SQL.
- آخر اختياري.
IF…ELSE بالقيمة الرقمية الوحيدة في التعبير المنطقي.
الحالة: صحيح
IF (1=1) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
الحالة: خطأ
IF (1=2) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
افتراض: افترض أن لديك الجدول كـ "المعلم99" مع عمودين وأربعة صفوف كما هو موضح أدناه:
سوف نستخدم "المعلم99" الجدول في مزيد من الأمثلة
IF…ELSE مع المتغير في التعبير المنطقي.
الحالة: صحيح
DECLARE @Course_ID INT = 4 IF (@Course_ID = 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
الحالة: خطأ
DECLARE @Course_ID INT = 4 IF (@Course_ID != 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
إذا... آخر مع بداية النهاية
الحالة: صحيح
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
الحالة: خطأ
DECLARE @Course_ID INT = 2 IF (@Course_ID >=3) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
بيان IF بدون أي شيء آخر
يمكنك استخدام عبارة IF في SQL بدون جزء ELSE. تذكر أننا ذكرنا أن الجزء ELSE اختياري. على سبيل المثال:
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) Select * from Guru99 where Tutorial_ID = 1
يطبع ما يلي:
لن يؤدي تنفيذ الشرط الخاطئ إلى أي إخراج. ضع في اعتبارك الاستعلام التالي
DECLARE @Course_ID INT = 2 IF (@Course_ID <=0) Select * from Guru99 where Tutorial_ID = 1
النتيجة ذلك
متداخلة إذا...بيانات أخرى
خلافا لغيرها لغات البرمجة، لا يمكنك إضافة عبارة ELSE IF ضمن شرط IF ELSE في SQL. ولهذا السبب يمكنك تداخل IF ELSE في عبارات استعلام SQL. هو موضح أدناه:
DECLARE @age INT;
SET @age = 60;
IF @age < 18
PRINT 'underage';
ELSE
BEGIN
IF @age < 50
PRINT 'You are below 50';
ELSE
PRINT 'Senior';
END;
- في هذا المثال، سيتم طباعة الكود تحت السن إذا كانت قيمة @age أقل من 18.
- إذا لم يكن الأمر كذلك، فسيتم تنفيذ الجزء ELSE. يحتوي الجزء ElSE على IF…ELSE متداخل.
- إذا كانت قيمة @age أقل من 50، فسيتم طباعة "أنت أقل من 50". إذا لم يكن أي من هذه الشروط صحيحًا، فسيتم طباعة الرمز "كبير".
ملخص
- المتغيرات هي الكائن الذي يعمل كعنصر نائب.
- يجب أن تبدأ مجموعة البيان بالكلمة الرئيسية BEGIN وتغلق بالكلمة الرئيسية END.
- Else اختياري للاستخدام في عبارة IF... ELSE
- من الممكن أيضًا دمج شرط SQL IF ELSE في عبارة IF...ELSE أخرى.










