SQLوضع قيمة إفتراضية لكل حالة
- مفهوم القيم الإفتراضية لكل حالة
- تجهيز قاعدة البيانات التي سنطبق عليها
- أمثلة حول وضع حالات للقيم التي سترجع
مفهوم القيم الإفتراضية لكل حالة
أحياناً, بعد جلب البيانات من الجداول قد تكون بحاجة لعرض قيم أخرى بدلاً من البيانات نفسها.
مثلاً في حال قمت ببناء قاعدة بيانات لمدرسة و فيها قمت بحفظ علامات الطلاب لكل مادة.
الآن, في حال أردت عرض علامات الطلاب في مادة معينة, قد تقوم بعرضها بشكل مختلف عن الشكل الذي حفظتها فيه كالتالي:
A
في حال كانت علامة الطالب بين90
و100
.B
في حال كانت علامة الطالب بين89
و80
.C
في حال كانت علامة الطالب بين79
و70
.D
في حال كانت علامة الطالب بين69
و60
.F
في حال كانت علامة الطالب بين59
و0
.Error
إذا لم تكن علامة الطالب بين0
و100
.
إذاً في هذه الحالة سنضع قائمة من الإحتمالات على العمود الذي سيتم فيه عرض علامات الطلاب حتى نعرض الحرف المناسب بناءاً عليها.
قائمة الإحتمالات التي يمكننا وضعها على أي عمود في الجدول الذي سيرجع في النتيجة النهائية تتيح لنا تغيير قيمة العمود في حال كانت تطابق شرط محدد و تتيح لنا وضع قيمة إفتراضية بدل القيمة الحالية في حال لم تتطابق القيمة مع أي شرط.
الشكل العام لوضع قائمة إحتمالات على أي عامود
- لوضع قائمة من القيم الإفتراضية التي سيتم وضعها مكان قيم العمود الأصلية, نضع الكلمتين CASE و End في المكان الذي كنا ننوي فيه عرض قيم العمود.
- أي شرط تريد وضعه على قيم العمود, تضع قبله الكلمة WHEN و بعده الكلمة THEN التي تضع من بعدها القيمة التي سيتم وضعها في حال تحقق الشرط.
- إذا أردت وضع قيمة إفتراضية يتم وضعها في حال لم يتطابق أي شرط, فيمكنك وضع الكلمة ELSE و وضع القائمة الإفتراضية بعدها.
عند وضع قائمة إحتمالات, تأكد من وضع إحتمالات لكل القيم, لأنه في حال مرور قيمة لا توجد إطلاقاً ضمن قائمة الإحتمالات الموضوعة, سيتم وضع القيمة Null مكانها في النتيجة النهائية.
تجهيز قاعدة البيانات التي سنطبق عليها
قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash
و تنشئ فيها جدول إسمه students
يحتوي على بيانات 10 موظفين.
الإستعلام
بعد تنفيذ الإستعلام السابق في phpMyAdmin سيتم إنشاء قاعدة البيانات harmash
و إنشاء الجدول students
بداخلها.
قم بالنقر على إسم قاعدة البيانات harmash
من القائمة اليسرى حتى تبدأ بالتعامل معها و تطبيق ما ستتعلمه في هذا الدرس.
البيانات التي قمنا بإضافتها بشكل إفتراضي في الجدول 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 |