SQLوضع قيمة إفتراضية لكل حالة
- الجملة الشرطية
CASE - تجهيز قاعدة البيانات التي سنطبق عليها
- أمثلة حول وضع قائمة إحتمالات للقيم التي ترجع
الجملة الشرطية CASE
الجملة الشرطية CASE يمكن استخدامها مع الأمر SELECT لوضع قائمة إحتمالات حتى يتم تبديل القيم التي تم جلبها بإحدى القيم الموضوعة فيها.
قائمة الإحتمالات التي يمكن وضعها على أي عمود في الجدول الذي يرجع في النتيجة النهائية تتيح لنا تغيير قيمة العمود في حال كانت تطابق شرط محدد و تتيح لنا وضع قيمة إفتراضية بدل القيمة الحالية في حال لم تتطابق القيمة مع أي شرط.
الشكل العام لاستخدامها
- قائمة القيم يتم وضعها بين الكلمتين
CASE و End في المكان الذي كنا ننوي فيه تبديل قيم العمود.
- أي شرط في القائمة يتم وضعه بعد الكلمة
WHEN و أي قيمة سيتم تبديلها إذا تحقق الشرط يتم وضعها بجانبه بعد الكلمة THEN.
- إذا أردت وضع قيمة إفتراضية ليتم وضعها في حال لم يتحقق أي شرط، يمكنك وضع الكلمة
ELSE وضع القيمة بعدها.
في حال لم يتم وضع قيمة إفتراضية بواسطة الكلمة ELSE و لم يتحقق أي شرط موضوع في قائمة الإحتمالات فإنه سيتم اعتماد القيمة Null كقيمة إفتراضية.
تجهيز قاعدة البيانات التي سنطبق عليها
قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash و تنشئ فيها جدول إسمه students يحتوي على بيانات 10 موظفين.
فيما يلي البيانات التي قمنا بإضافتها في الجدول students.
| id | name | math |
| 1 | Ahmad | 82 |
| 2 | Rami | 87 |
| 3 | Said | 73 |
| 4 | Noura | 92 |
| 5 | Amani | 78 |
| 6 | Mhamad | 65 |
| 7 | Ahmad | 45 |
| 8 | Mostafa | 95 |
| 9 | Jana | 68 |
| 10 | Houssam | 120 |
أمثلة حول وضع قائمة إحتمالات للقيم التي ترجع
الإستعلام التالي يقوم بعرض id و name كل طالب بالإضافة إلى تقييمه في في مادة الرياضيات (هل هو ناجح أم لا).
طباعة ما إن كان الطلاب ناجح في المادة أم لا وضعناها كالتالي:
- إذا كانت العلامة بين
60 و 100 فعندها يعتبر ناجحاً.
- إذا كانت العلامة بين
0 و 59 فعندها يعتبر راسباً.
- غير ذلك، هناك خطأ في العلامة المدخلة و يجب مراجعة الأستاذ.
المثال الأول
النتيجة
| Id | Name | Math Note |
| 1 | Ahmad | Passed |
| 2 | Rami | Passed |
| 3 | Said | Passed |
| 4 | Noura | Passed |
| 5 | Amani | Passed |
| 6 | Mhamad | Passed |
| 7 | Ahmad | Failed |
| 8 | Mostafa | Passed |
| 9 | Jana | Passed |
| 10 | Houssam | Refer to Professor |
الإستعلام التالي يقوم بعرض معلومات الطالب كما هي، بالإضافة إلى أن علامة مادة الرياضيات math يعرضها مرة ثانية على شكل أحرف كالتالي:
A في حال كانت علامة الطالب بين 90 و 100.
B في حال كانت علامة الطالب بين 89 و 80.
C في حال كانت علامة الطالب بين 79 و 70.
D في حال كانت علامة الطالب بين 69 و 60.
F في حال كانت علامة الطالب بين 59 و 0.
Error إذا لم تكن علامة الطالب بين 0 و 100.
المثال الثاني
النتيجة
| Id | Name | Math (Percent) | Math (Letter) |
| 1 | Ahmad | 82 | B |
| 2 | Rami | 87 | B |
| 3 | Said | 73 | C |
| 4 | Noura | 92 | A |
| 5 | Amani | 78 | C |
| 6 | Mhamad | 65 | D |
| 7 | Ahmad | 45 | E |
| 8 | Mostafa | 95 | A |
| 9 | Jana | 68 | D |
| 10 | Houssam | 120 | Refer to Professor |