ใช้ฟังก์ชัน IF(condition, true_value, false_value) ใน SELECT เพื่อสร้างคอลัมน์เงื่อนไข
ตัวอย่าง: ให้เกรด Pass/Fail จากคะแนน
1. สร้างตารางนักเรียน
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(100),
-> Subject VARCHAR(100),
-> Score INT
-> );
mysql> INSERT INTO DemoTable(Name, Subject, Score) VALUES
('Chris', 'MySQL', 80), ('Robert', 'MongoDB', 45), ('Adam', 'Java', 78);
2. Query พร้อมคอลัมน์ Status
mysql> SELECT Name, Subject, Score, IF(Score > 75, 'PASS', 'FAIL') AS Status FROM DemoTable;
ผลลัพธ์
+--------+---------+-------+--------+ | Name | Subject | Score | Status | +--------+---------+-------+--------+ | Chris | MySQL | 80 | PASS | | Robert | MongoDB | 45 | FAIL | | Adam | Java | 78 | PASS | +--------+---------+-------+--------+
ความแตกต่าง IF() vs CASE
| คุณสมบัติ | IF() | CASE |
|---|---|---|
| จำนวนเงื่อนไข | 1 เงื่อนไข (True/False) | หลายเงื่อนไข (WHEN ... THEN ...) |
| ความซับซ้อน | Simple | Complex logic |
| Standard SQL | MySQL only | ANSI Standard |
ตัวอย่าง CASE หลายเงื่อนไข (Grade A-F)
SELECT Name, Score,
CASE
WHEN Score >= 90 THEN 'A'
WHEN Score >= 80 THEN 'B'
WHEN Score >= 70 THEN 'C'
WHEN Score >= 60 THEN 'D'
ELSE 'F'
END AS Grade
FROM DemoTable;