MySQL是一種開源的關系型數據庫管理系統,它支持多種操作系統,如Linux、Windows和macOS等。在MySQL中,有時需要根據查詢結果生成一列新的數據,這種操作可以使用SELECT語句的CASE結構來實現。
SELECT column1, column2, CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE defalut_result END AS new_column FROM table_name;
在上面的語句中,column1和column2是從表table_name中選擇的列,CASE結構用于根據特定的條件生成新的列。condition1、2、…和result1、2、…用于定義條件和相應的結果,ELSE子句用于在沒有條件滿足時返回默認結果。AS關鍵字用于指定新列的名稱。
例如,我們有以下一個表:
CREATE TABLE student( id INT PRIMARY KEY, name VARCHAR(20), score INT ); INSERT INTO student(id, name, score) VALUES(1, 'Tom', 80); INSERT INTO student(id, name, score) VALUES(2, 'Jerry', 60); INSERT INTO student(id, name, score) VALUES(3, 'Mike', 90); INSERT INTO student(id, name, score) VALUES(4, 'Lucy', 70); INSERT INTO student(id, name, score) VALUES(5, 'Lily', 85);
我們想根據學生的成績生成一列等級,可以使用以下SELECT語句:
SELECT id, name, score, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' WHEN score >= 60 THEN 'D' ELSE 'E' END AS grade FROM student;
執行上述語句后,將返回以下結果:
+----+-------+-------+-------+ | id | name | score | grade | +----+-------+-------+-------+ | 1 | Tom | 80 | B | | 2 | Jerry | 60 | D | | 3 | Mike | 90 | A | | 4 | Lucy | 70 | C | | 5 | Lily | 85 | B | +----+-------+-------+-------+
可以看到,根據查詢結果生成了一列新的數據,用于表示學生的等級。