Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ใช้ CASE WHEN column1 IS NULL THEN NULL ELSE column2 END ใน MySQL

ตัวอย่างใช้ 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 ของคอลัมน์อื่น