CASE WHEN
جزء من قسم ما وراء الأساسيات في رحلة SQL على Coddy. الدرس 1 من 27.
تعبير CASE هو عبارة عن if/else if/else في SQL. ويُستخدم داخل SELECT (أو ORDER BY، أو WHERE) وينتج قيمة لكل صف.
SELECT name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 75 THEN 'B'
WHEN score >= 60 THEN 'C'
ELSE 'F'
END AS grade
FROM studentsيتم التحقق من كل WHEN من الأعلى إلى الأسفل؛ وتكون المطابقة الأولى هي المعتمدة. أما ELSE فهي اختيارية. وبدونها، تحصل الصفوف غير المطابقة على NULL.
اختتم دائمًا بـ END وامنح العمود اسمًا باستخدام AS.
التحدي
سهلالجداول والأعمدة المتاحة:
employees:id،name،department،salary
لكل موظف، أعد name وdepartment وعمود tier مبنيًا كما يلي:
'partner'عندما تكونsalary >= 150000(بغض النظر عن القسم)'senior'عندما يكونdepartment = 'eng'وsalary >= 100000'mid'عندما تكونsalary >= 60000'entry'خلاف ذلك
رتّب حسب salary ترتيبًا تنازليًا. لاحظ أن ترتيب فروع WHEN مهم: تتحقق المطابقة الأولى.
جرّب بنفسك
SELECT name, department,
-- مستوى مع فروع WHEN متعددة تمزج الراتب والقسم
FROM employees
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس ما وراء الأساسيات
1المنطق الشرطي
CASE WHENاستخدام CASE في ORDER BYدالة COALESCE للتعامل مع قيم NULLدالتا NULLIF و IIFمراجعة - الحضورتدرّب بنفسك: Playground لـ SQL