بيان حالة MySQL
بيان MySQL CASE
يمر CASE
البيان بالشروط ويعيد قيمة عند استيفاء الشرط الأول (مثل عبارة if-then-else). لذلك ، بمجرد أن يكون الشرط صحيحًا ، سيتوقف عن القراءة ويعيد النتيجة. إذا لم تكن هناك شروط صحيحة ، فإنها تُرجع القيمة الموجودة في ELSE
الجملة.
إذا لم يكن هناك ELSE
جزء ولم تتحقق أية شروط ، فسيتم إرجاع NULL.
بناء جملة CASE
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
قاعدة بيانات تجريبية
يوجد أدناه تحديد من جدول "OrderDetails" في نموذج قاعدة بيانات Northwind:
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
أمثلة على MySQL CASE
يمر SQL التالي عبر الشروط ويعيد قيمة عند استيفاء الشرط الأول:
مثال
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;
سيطلب SQL التالي العملاء حسب المدينة. ومع ذلك ، إذا كانت City هي NULL ، فقم بالترتيب حسب البلد:
مثال
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);