بيان حالة SQL
ال CASE بيان في SQL هو تعبير شرطي متعدد الاستخدامات يمكننا من الدمج المنطق الشرطي مباشرة ضمن استفساراتنا. فهو يسمح لك بإرجاع نتائج محددة بناءً على شروط معينة تتيح مخرجات الاستعلام الديناميكية. سواء كنت بحاجة إلى ذلك إنشاء أعمدة جديدة تعديل تلك الموجودة أو تخصيص نتائج الاستعلامات الخاصة بك بيان القضية يمكن التعامل مع كل شيء.
في هذا المقال سنتعرف على بيان حالة SQL بالتفصيل مع أمثلة واضحة وحالات استخدام توضح كيفية الاستفادة من هذه الميزة لتحسين استعلامات SQL الخاصة بك.
بيان الحالة في SQL
- ال
CASEبيان في SQL هو تعبير شرطي يسمح لك بتنفيذ المنطق الشرطي داخل الاستعلام.
- يتم استخدامه بشكل شائع لإنشاء أعمدة جديدة بناءً على المنطق الشرطي، وتوفير قيم مخصصة أو التحكم في مخرجات الاستعلام بناءً على شروط معينة.
- إذا لم يكن هناك شرط صحيح ثم آخر سيتم تنفيذ الجزء إذا لم يكن هناك جزء ELSE فإنه يعود باطل.
بناء الجملة:
لاستخدام بيان الحالة في SQL، استخدم بناء الجملة التالي:
حالة حالة_قيمة
عندما تكون الحالة ثم النتيجة1
عندما تكون الحالة ثم النتيجة2
...
نتيجة أخرى
حالة النهاية؛
مثال على بيان حالة SQL
دعونا نلقي نظرة على بعض الأمثلة على عبارة CASE في SQL لفهمها بشكل أفضل.
لنقم بإنشاء جدول SQL تجريبي والذي سيتم استخدامه في الأمثلة.
قاعدة بيانات SQL التجريبية
سنستخدم نموذج جدول SQL هذا للحصول على أمثلة لدينا حول عبارة SQL CASE:
| معرف العميل | اسم العميل | اسم العائلة | دولة | عمر | هاتف |
|---|---|---|---|---|---|
| 1 | شك | ثاكور | الهند | 23 | xxxxxxxxx |
| 2 | آمن | شوبرا | أستراليا | 21 | xxxxxxxxx |
| 3 | نافين | تولاسي | سريلانكا | 24 | xxxxxxxxx |
| 4 | أديتيا | أربان | النمسا | 21 | xxxxxxxxx |
| 5 | نيشانت. سالشيشاس إس. | جاين | إسبانيا | 22 | xxxxxxxxx |
يمكنك إنشاء نفس قاعدة البيانات في نظامك عن طريق كتابة استعلام MySQL التالي:
CREATE TABLE Customer( CustomerID INT PRIMARY KEY CustomerName VARCHAR(50) LastName VARCHAR(50) Country VARCHAR(50) Age int(2) Phone int(10) ); -- Insert some sample data into the Customers table INSERT INTO Customer (CustomerID CustomerName LastName Country Age Phone) VALUES (1 'Shubham' 'Thakur' 'India''23''xxxxxxxxxx') (2 'Aman ' 'Chopra' 'Australia''21''xxxxxxxxxx') (3 'Naveen' 'Tulasi' 'Sri lanka''24''xxxxxxxxxx') (4 'Aditya' 'Arpan' 'Austria''21''xxxxxxxxxx') (5 'Nishant. Salchichas S.A.' 'Jain' 'Spain''22''xxxxxxxxxx');مثال 1: تعبير حالة بسيط
في هذا المثال نستخدم عبارة CASE
استفسار:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;الإخراج:
| اسم العميل | عمر | جنسية |
|---|---|---|
| شك | 23 | هندي |
| آمن | 21 | أجنبي |
| نافين | 24 | أجنبي |
| أديتيا | 21 | أجنبي |
| نيشانت. سالشيشاس إس. | 22 | أجنبي |
المثال 2: حالة SQL عند وجود شروط متعددة
يمكننا إضافة شروط متعددة في بيان CASE باستخدام متعددة متى بنود.
استفسار:
SELECT CustomerName Age CASE WHEN Age> 22 THEN 'The Age is greater than 22' WHEN Age = 21 THEN 'The Age is 21' ELSE 'The Age is over 30' END AS QuantityText FROM Customer;الإخراج:
| اسم العميل | عمر | نص الكمية |
|---|---|---|
| شك | 23 | العمر أكبر من 22 |
| آمن | 21 | العمر 21 |
| نافين | 24 | العمر أكبر من 22 |
| أديتيا | 21 | العمر 21 |
| نيشانت. سالشيشاس إس. | 22 | العمر فوق 30 |
مثال 3: بيان الحالة مع جملة ORDER BY
لنأخذ جدول العملاء الذي يحتوي على معرف العميل واسم العميل واسم العائلة والبلد والعمر والهاتف. يمكننا التحقق من بيانات جدول العملاء باستخدام الطلب حسب جملة مع بيان CASE.
استفسار:
SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);الإخراج:
| اسم العميل | دولة |
|---|---|
| آمن | أستراليا |
| أديتيا | النمسا |
| نيشانت. سالشيشاس إس. | إسبانيا |
| نافين | سريلانكا |
| شك | الهند |
نقاط مهمة حول بيان الحالة
- عبارة SQL CASE عبارة عن تعبير شرطي يسمح بتنفيذ استعلامات مختلفة بناءً على شروط محددة.
- يجب أن يكون هناك دائمًا أ يختار في بيان الحالة.
- نهاية آخر هو مكون اختياري ولكن متى يجب تضمين هذه الحالات في بيان الحالة.
- يمكننا عمل أي عبارة شرطية باستخدام أي عامل شرطي (مثل أين ) بين متى وبعد ذلك. يتضمن ذلك ربط عدة عبارات شرطية معًا باستخدام و و أو.
- يمكننا تضمين عدة عبارات WHEN وعبارة ELSE لمواجهة الشروط التي لم تتم معالجتها.
خاتمة
ال CASE يوفر البيان آلية قوية لدمج المنطق الشرطي في استعلامات SQL. باستخدام هذا البيان، يمكنك التعامل مع الظروف المختلفة وتخصيص مخرجات استفساراتك بشكل فعال. فهم كيفية التنفيذ CASE تسمح لك التعبيرات بإجراء معالجة أكثر تعقيدًا للبيانات وإعداد التقارير مما يجعل استعلامات SQL الخاصة بك أكثر ديناميكية واستجابة لسيناريوهات مختلفة.