ตัวอย่างใช้ CASE WHEN ตรวจสอบค่า NULL ในคอลัมน์หนึ่ง แล้วคืนค่าอีกคอลัมน์
mysql> CREATE TABLE DemoTable (
-> Name VARCHAR(20),
-> Marks1 INT,
-> Marks2 INT
-> );
Query OK, 0 rows affected (0.72 sec)
mysql> INSERT INTO DemoTable VALUES('Chris', 45, NULL);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('David', NULL, 78);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES('Bob', 67, 98);
Query OK, 1 row affected (0.14 sec)
mysql> SELECT * FROM DemoTable;
+-------+--------+--------+ | Name | Marks1 | Marks2 | +-------+--------+--------+ | Chris | 45 | NULL | | David | NULL | 78 | | Bob | 67 | 98 | +-------+--------+--------+ 3 rows in set (0.00 sec)
ถ้า Marks1 เป็น NULL ให้คืน NULL, มิฉะนั้นคืน Marks2:
mysql> SELECT *,
-> (CASE WHEN Marks1 IS NULL THEN NULL ELSE Marks2 END) AS Value
-> FROM DemoTable;
+-------+--------+--------+-------+ | Name | Marks1 | Marks2 | Value | +-------+--------+--------+-------+ | Chris | 45 | NULL | NULL | | David | NULL | 78 | NULL | | Bob | 67 | 98 | 98 | +-------+--------+--------+-------+ 3 rows in set (0.00 sec)
ประยุกต์: Logic เงื่อนไขซับซ้อนใน SELECT, คำนวณค่าที่พึ่งพาค่า NULL ของคอลัมน์อื่น