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