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.
التحدي
سهلالجداول والأعمدة المتاحة:
<strong>employees</strong>:<strong>id</strong>,<strong>name</strong>,<strong>department</strong>,<strong>salary</strong>
لكل موظف، قم بإرجاع name و department وعمود tier مبني كالتالي:
'partner'عندما يكونsalary >= 150000(في أي قسم)'senior'عندما يكونdepartment = 'eng'وsalary >= 100000'mid'عندما يكونsalary >= 60000'entry'بخلاف ذلك
قم بالترتيب حسب salary تنازلياً. لاحظ أن ترتيب فروع WHEN مهم: أول تطابق هو الذي يفوز.
جرّب بنفسك
SELECT name, department,
-- فئة مع فروع WHEN متعددة تخلط salary و department
FROM employees
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس ما وراء الأساسيات
1المنطق الشرطي
CASE WHENاستخدام CASE في ORDER BYدالة COALESCE للتعامل مع قيم NULLدالتا NULLIF و IIFمراجعة - الحضور