Case (Case)
«CASE در SQL» مثل «if-else» عمل می کند. یعنی شرط ها را می سنجد و اولین شرط درست را برمی گرداند. اگر هیچ شرطی درست نبود، مقدار «ELSE» می آید. اگر «ELSE» نداشتی، مقدار «NULL» برمی گردد. این یعنی برچسب زدن داده ها ساده می شود.
عبارت CASE در SQL چیست؟
«عبارت (Expression)» یعنی فرمولی که یک مقدار می سازد. CASE از بالا می خواند، روی اولین شرط درست می ایستد، سپس همان مقدار را می دهد. بنابراین، ترتیب شرط ها خیلی مهم است.
قالب کلی CASE
CASE;
WHEN condition1 THEN result1;
WHEN condition2 THEN result2;
WHEN conditionN THEN resultN;
ELSE result;
END;
نمونه های CASE
تبدیل تعداد سفارش به متن خوانا با CASE.
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;
مرتب سازی بر اساس City؛ اگر City تهی بود، بر اساس Country.
SELECT CustomerName, City, Country;
FROM Customers;
ORDER BY
(
CASE;
WHEN City IS NULL THEN Country;
ELSE City;
END
);
گام های عملی سریع
- ستون هدف را مشخص کن.
- شرط ها را از مهم به کم اهمیت بچین.
- برای حالت های دیگر، ELSE بگذار.
- در پایان، خروجی را بررسی کن.
نکته: شرط های تکراری را حذف کن؛ اولین شرط درست اجرا می شود. همچنین، برای داده های NULL می توانی از IS NULL کمک بگیری.
پیوندهای مرتبط
پیش نیاز کاربردی: درج از انتخاب (Insert Into Select) و بررسی تهی ها با ISNULL/IS NULL.
جمع بندی سریع
- CASE مثل if-else برای SQL است.
- اولین شرط درست، نتیجه را می دهد.
- بدون ELSE و شرط درست، NULL می آید.
- ترتیب شرط ها اهمیت زیادی دارد.