عبارت شرطی (CASE)
«عبارت CASE» مثل if-then-else کار می کند. شرط ها را به ترتیب می سنجد. وقتی اولین شرط درست شد، همان لحظه نتیجه می دهد. اگر هیچ شرطی درست نبود، مقدار ELSE برگردانده می شود. اگر ELSE هم نباشد، مقدار NULL برمی گردد.
CASE چیست و چرا کاربردی است؟
CASE یعنی «بر اساس شرط، برچسب بده». شرط (Condition) یک آزمون ساده است. سپس، برای اولین شرط درست، یک مقدار برمی گردد. بنابراین، می توانی نمایش داده را هوشمند کنی.
نکته: صفحه عبارت شرطی CASE را مرجع خودت نگه دار. همچنین برای مقایسه چندگانه به ANY و ALL هم سر بزن.
مثال: دسته بندی قیمت با CASE
اگر قیمت خیلی کم بود، «Low price product». اگر خیلی زیاد بود، «High price product». در غیر این صورت، «Normal product».
SELECT
products.product_name,
CASE
WHEN price < 10 THEN 'Low price product'
WHEN price > 50 THEN 'High price product'
ELSE 'Normal product'
END
FROM
products;
CASE با نام مستعار (Alias)
اگر برای ستون CASE نام ندهی، نام پیش فرض «case» می شود. اما بهتر است نام گذاری شفاف باشد. پس بعد از END یک نام مستعار بده.
SELECT
products.product_name,
CASE
WHEN price < 10 THEN 'Low price product'
WHEN price > 50 THEN 'High price product'
ELSE 'Normal product'
END AS "price category"
FROM
products;
گام های عملی
- ستون ها را در SELECT مشخص کن.
- CASE را اضافه کن و WHEN ها را بنویس.
- برای حالت پیش فرض، ELSE بگذار.
- در پایان، END و نام مستعار را بنویس.
هشدار: شرط ها را از خاص به عمومی بچین. چون CASE با اولین شرط درست، متوقف می شود.
جمع بندی سریع
- CASE مثل if-then-else است.
- اولین شرط درست، نتیجه را تعیین می کند.
- بدون ELSE، مقدار NULL می گیری.
- برای خوانایی، نام مستعار بده.
- شرط ها را مرتب و دقیق بنویس.