Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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.

challenge icon

التحدي

سهل

الجداول والأعمدة المتاحة:

  • <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 مهم: أول تطابق هو الذي يفوز.

ورقة مرجعية

تعمل CASE مثل if/else داخل SELECT، حيث تنتج قيمة لكل صف:

SELECT name,
       CASE
           WHEN score >= 90 THEN 'A'
           WHEN score >= 75 THEN 'B'
           ELSE 'F'
       END AS grade
FROM students
  • يتم التحقق من الشروط من الأعلى إلى الأسفل؛ أول مطابقة هي التي تفوز
  • ELSE اختياري — بدونه، الصفوف غير المتطابقة تعيد NULL
  • أغلق دائماً بـ END؛ استخدم AS لتسمية العمود

جرّب بنفسك

SELECT name, department,
       -- مستوى مع فروع WHEN متعددة تمزج بين salary و department
FROM employees
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس ما وراء الأساسيات