SQL CASE Expression

در SQL از CASE Expression برای ایجاد شرط‌های شرطی در داخل کوئری استفاده می‌کنیم، شبیه به دستور if-else در زبان‌های برنامه‌نویسی.

🔹 ساختار کلی

SELECT column1, CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result_default END AS alias_name FROM table_name;
  • CASE → شروع شرط‌ها

  • WHEN … THEN … → شرط و نتیجه

  • ELSE → نتیجه پیش‌فرض (اختیاری)

  • END → پایان CASE و می‌توانیم یک Alias برای ستون شرطی تعریف کنیم

🔹 مثال ساده

جدول: Orders

order_idcustomer_idamount
11500
22300
33200

کوئری:

SELECT order_id, amount, CASE WHEN amount >= 400 THEN 'High' WHEN amount >= 200 THEN 'Medium' ELSE 'Low' END AS order_category FROM Orders;

📌 خروجی:

order_idamountorder_category
1500High
2300Medium
3200Medium

🔹 مثال با مقایسه ستون دیگر

SELECT customer_id, amount, CASE WHEN amount > (SELECT AVG(amount) FROM Orders) THEN 'Above Average' ELSE 'Below Average' END AS amount_status FROM Orders;

📌 بررسی می‌کنه که مبلغ سفارش بالاتر یا پایین‌تر از میانگین کل سفارش‌هاست.

🔹 نکات مهم

  • می‌توانیم چندین WHEN … THEN … داشته باشیم.

  • ELSE اختیاریه، اگر ننویسیم و شرطی برقرار نشه → نتیجه NULL خواهد بود.

  • CASE می‌تونه در SELECT, WHERE, ORDER BY و GROUP BY استفاده بشه.