ใช้ CASE WHEN ใน SELECT เพื่อสร้างคอลัมน์คำนวณแบบมีเงื่อนไข
mysql> CREATE TABLE DemoTable (
-> FirstName VARCHAR(20),
-> Score INT
-> );
Query OK, 0 rows affected (0.63 sec)
mysql> INSERT INTO DemoTable VALUES('John', 46);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES('John', 78);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES('John', 69);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('Chris', 78);
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES('Chris', 89);
Query OK, 1 row affected (0.17 sec)
mysql> SELECT * FROM DemoTable;
+-----------+-------+ | FirstName | Score | +-----------+-------+ | John | 46 | | John | 78 | | John | 69 | | Chris | 78 | | Chris | 89 | +-----------+-------+ 5 rows in set (0.00 sec)
ตรวจสอบว่าแต่ละคนมีคะแนน 69 หรือไม่ (1=มี, 0=ไม่มี):
mysql> SELECT FirstName, MAX(CASE WHEN Score = 69 THEN 1 ELSE 0 END) AS isExistsOrNot
-> FROM DemoTable
-> GROUP BY FirstName;
+-----------+---------------+ | FirstName | isExistsOrNot | +-----------+---------------+ | John | 1 | | Chris | 0 | +-----------+---------------+ 2 rows in set (0.00 sec)
ประยุกต์: Pivot table, Feature engineering, Flag สำหรับรายงาน