CASE (CASE)
«CASE» خروجی شرطی می سازد. «شرطی (Conditional)» یعنی بر اساس وضعیت های مختلف، متن یا مقدار متفاوت برگردد. این کار مثل «اگه/وگرنه» در درس ریاضی است.
CASE چیست؟
با «CASE» چند شرط پشت سرهم بررسی می شوند. وقتی یک شرط درست شود، مقدار مشخصی برمی گردد. اگر هیچ کدام درست نشد، مقدار بخش «ELSE» برمی گردد.
مثال: ساخت متن بر اساس 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;
مثال: 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 را اضافه کن.
- شرط های WHEN و مقدار THEN را مشخص کن.
- در پایان از ELSE برای حالت پیش فرض استفاده کن.
- CASE را با END ببند و کوئری را اجرا کن.
نکته: اولین شرط درست اجرا می شود؛ بقیه نادیده گرفته می شوند.
مطالعه بیشتر: عبارت شرطی CASE، همچنین صفحات BETWEEN و ASC را ببین.
جمع بندی سریع
- CASE خروجی شرطی می دهد.
- WHEN شرط را تعریف می کند.
- ELSE حالت پیش فرض است.
- با ORDER BY هم کاربردی است.
- اولین شرط درست اعمال می شود.