case-when語句,用於計算條件列表並返回多個可能結果表達式之一。
一、case 具有兩種格式:
1、簡單Case函數
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
2、Case搜索函數
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
二、實際操作
1、
將圖一中成績>=90分定義為優秀,60<=成績<90定義為良好,成績<60定義為不及格,要求得到圖二的結果:
SELECT C_Name,(CASE WHEN 語文>=90 THEN '優秀' WHEN 語文<60 THEN '不及格' ELSE '良好' END) AS 語文, (CASE WHEN 數學>=90 THEN '優秀' WHEN 數學<60 THEN '不及格' ELSE '良好' END) AS 數學, (CASE WHEN 英語>=90 THEN '優秀' WHEN 英語<60 THEN '不及格' ELSE '良好' END) AS 英語 FROM score2
2、
圖一要求得到圖二,統計輸贏的數量:
SELECT W_Time, COUNT(CASE WHEN wor='贏' THEN 1 END) AS '贏', COUNT(CASE WHEN wor='輸' THEN 1 END) AS '輸' FROM WinOrGohome GROUP BY W_Time