CASE (CASE)
CASE در SQL مثل «اگر-آنگاه-وگرنه (IF-THEN-ELSE)» کار می کند. «شرط (Condition)» یعنی یک تست منطقی. از بالا می خواند، اولین شرط درست شد، همان لحظه مقدار می دهد و تمام.
تعریف کوتاه و رفتار
CASE شرط ها را به ترتیب بررسی می کند. با اولین شرط درست، نتیجه برمی گردد. اگر هیچ شرطی درست نبود، مقدار ELSE برمی گردد. اگر ELSE نبود، NULL می شود.
سینتکس استاندارد
CASE
WHEN condition1 THEN result1;
WHEN condition2 THEN result2;
WHEN conditionN THEN resultN;
ELSE result;
END;
مثال 1: پیام بر اساس Quantity
در این مثال، بر اساس مقدار Quantity یک متن ساده می دهیم؛ مثل اعلام وضعیت سفارش در برنامه مدرسه.
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
FROM
OrderDetails;
مثال 2: ORDER BY با CASE
می خواهیم ابتدا بر اساس City مرتب کنیم. اگر City تهی بود، بر اساس Country مرتب شود.
SELECT
CustomerName,
City,
Country
FROM
Customers
ORDER BY
(
CASE
WHEN City IS NULL THEN Country;
ELSE City;
END
);
گام های سریع تمرین
- یک ستون عددی انتخاب کن.
- سه وضعیت ساده تعیین کن.
- CASE بنویس و نتایج را ببین.
نکته ها و مسیر ادامه
نکته: CASE در SELECT، ORDER BY و GROUP BY کاربرد دارد. برای تبدیل باینری ببین: BINARY. برای تغییر نوع، مراجعه کن به CAST.
هشدار: ترتیب WHEN مهم است. شرط عمومی را پایین تر بگذار تا شرط های خاص جلویش قرار نگیرند.
جمع بندی سریع
- CASE مثل IF-THEN-ELSE است.
- اولین شرط درست، نتیجه می دهد.
- بدون ELSE و شرط درست، NULL می شود.
- در SELECT و ORDER BY عالی است.