8.1 SQL - CASE
تعبير SQL CASE
تعبير CASE بيشتغل زي جملة if - then - else في لغات البرمجة، وبيستخدم علشان ترجع قيمة معينة بناءً على شروط.
- بيفحص الشروط واحدة ورا التانية.
- أول شرط يتحقق ➜ بيرجع النتيجة المرتبطة بيه.
- بيتوقف أول ما يلاقي شرط صحيح.
- لو مفيش شرط تحقق ➜ بيرجع القيمة اللي بعد
ELSE. - ولو مفيش
ELSE➜ النتيجة بتكون NULL.
✅ الصيغة العامة:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
🧪 قاعدة البيانات التجريبية (OrderDetails)
| OrderDetailID | OrderID | ProductID | Quantity |
|---|---|---|---|
| 1 | 10248 | 11 | 12 |
| 2 | 10248 | 42 | 10 |
| 3 | 10248 | 72 | 5 |
| 4 | 10249 | 14 | 9 |
| 5 | 10249 | 51 | 40 |
✅ مثال 1: وصف الكمية حسب قيمتها:
SELECT OrderID, Quantity,
CASE
WHEN Quantity > 30 THEN 'The quantity is greater than 30'
WHEN Quantity = 30 THEN 'The quantity is 30'
ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;
⬅ الكود ده بيضيف عمود جديد فيه وصف للكمية.
✅ مثال 2: استخدام CASE داخل ORDER BY
SELECT CustomerName, City, CountryFROM CustomersORDER BYCASEWHEN City IS NULL THEN CountryELSE CityEND;
⬅ بيتم الترتيب حسب City وإذا كانت NULL يتم استخدام Country.
💡 ملاحظات:
- تقدر تستخدم
CASEفي أي مكان في الاستعلام:SELECT،WHERE،ORDER BY، إلخ. CASEبيرجع أول نتيجة يتحقق شرطها فقط.- ينفع تستخدمه مع نصوص أو أرقام أو تواريخ.
تعليقات
إرسال تعليق