บทนำ
การแสดงผลค่า Boolean หรือตัวเลขเป็นข้อความที่อ่านง่าย (เช่น 1 → 'Married', 0 → 'Not Married') สามารถทำได้ด้วยคำสั่ง CASE WHEN
ตัวอย่างการสร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (
-> IsMarried BOOLEAN
-> );
Query OK, 0 rows affected (0.76 sec)
mysql> INSERT INTO DemoTable VALUES(TRUE);
mysql> INSERT INTO DemoTable VALUES(FALSE);
mysql> INSERT INTO DemoTable VALUES(FALSE);
mysql> INSERT INTO DemoTable VALUES(TRUE);
แสดงข้อมูลทั้งหมด (ค่าตัวเลข 1/0)
mysql> SELECT * FROM DemoTable;
ผลลัพธ์
+-----------+
| IsMarried |
+-----------+
| 1 |
| 0 |
| 0 |
| 1 |
+-----------+
4 rows in set (0.00 sec)
คำสั่งแทนที่ตัวเลขด้วยข้อความ
mysql> SELECT IsMarried,
-> CASE IsMarried
-> WHEN 1 THEN 'Married'
-> ELSE 'Not Married'
-> END AS Status
-> FROM DemoTable;
ผลลัพธ์
+-----------+-------------+
| IsMarried | Status |
+-----------+-------------+
| 1 | Married |
| 0 | Not Married |
| 0 | Not Married |
| 1 | Married |
+-----------+-------------+
4 rows in set (0.00 sec)
รูปแบบ CASE WHEN ทั้งสองแบบ
1. Simple CASE (เปรียบเทียบค่าเดียว)
CASE column
WHEN value1 THEN result1
WHEN value2 THEN result2
ELSE defaultResult
END
2. Searched CASE (เงื่อนไขซับซ้อน)
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE defaultResult
END
ตัวอย่าง Searched CASE
SELECT Score,
CASE
WHEN Score >= 80 THEN 'A'
WHEN Score >= 70 THEN 'B'
WHEN Score >= 60 THEN 'C'
ELSE 'F'
END AS Grade
FROM Students;