SQL CASE WHEN หลายเงื่อนไข บทความนี้สอนใช้คำสั่ง CASE WHEN สำหรับสร้างเงื่อนไขการแสดงผล หรือการคำนวณแบบหลายเงื่อนไข จาก column price ของตาราง product พร้อมแสดงผลลัพธ์ออกสู่หน้าจอ สามารถเขียนคำสั่ง SQL ได้ดังนี้
ตัวอย่าง ข้อมูลตาราง product
+----+--------+-------+
| id | title | price |
+----+--------+-------+
| 1 | orange | 10.00 |
| 2 | apple | 25.00 |
| 3 | banana | 18.00 |
| 4 | berry | 5.00 |
+----+--------+-------+
ตัวอย่าง SQL CASE WHEN หลายเงื่อนไข
SELECT id, title, price,
CASE
WHEN price BETWEEN 8 AND 10 THEN '5%'
WHEN price BETWEEN 11 AND 30 THEN '10%'
ELSE '20%'
END AS discount
FROM product
ผลลัพธ์
+----+--------+-------+----------+
| id | title | price | discount |
+----+--------+-------+----------+
| 1 | orange | 10.00 | 5% |
| 2 | apple | 25.00 | 10% |
| 3 | banana | 18.00 | 10% |
| 4 | berry | 5.00 | 20% |
+----+--------+-------+----------+
SQL CASE WHEN หลายเงื่อนไข จากตัวอย่างต้องการสร้าง column discount (ส่วนลด) โดยมีเงื่อนไขคือ ถ้าราคาสินค้า (price) อยู่ระหว่าง 8 ถึง 10 ให้ส่วนลด 5% และราคาอยู๋ระหว่าง 11 ถึง 30 ให้ส่วนลด 10% และถ้าไม่เข้าเงื่อนไขทั้ง 2 ให้ส่วนลด 20% สามารถเขียน SQL CASE WHEN ได้ดังนี้
1. WHEN price BETWEEN 8 AND 10 THEN '5%' คือ ถ้าราคา (price) อยู่ระหว่าง 8 ถึง 10 ให้ส่วนลด (discount) 5%
2. WHEN price BETWEEN 11 AND 30 THEN '10%' ถ้าราคา (price) อยู่ระหว่าง 11 ถึง 30 ให้ส่วนลด (discount) 10%
3. ELSE '20%' ถ้าไม่เข้าเงื่อนไข WHEN ทั้ง 2 ให้ส่วนลด (discount) 20%