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

ใช้ CASE WHEN ภายใน SELECT ใน MySQL

ใช้ 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 สำหรับรายงาน