Devdit
 

SQL CASE WHEN หลายเงื่อนไข

5.5K

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%

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ