CASE WHEN 條件 THEN 改變的值 END 1.簡單case函數,使用表達式確定返回值: 語法: CASE title WHEN expression1 THEN result1 WHEN expression2 THEN result2 ... WHEN expressionN THEN ...
CASE WHEN 條件 THEN 改變的值 END
1.簡單case函數,使用表達式確定返回值:
語法:
CASE title
WHEN expression1 THEN result1
WHEN expression2 THEN result2
...
WHEN expressionN THEN resultN
ELSE default_res
2.搜索case表達式,使用條件確定返回值(一般使用)
語法:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE default_result
END
eg:
SELECT sex
CASE
WHEN sex=0 then '男'
WHEN sex=1 then '女'
ELSE '未知'
END
FROM student;
3.一些例子
1>已知數據按照另外一種方式進行分組,分析。
根據這個國家人口數據,統計亞洲和北美洲的人口數量
country population
中國 600
美國 100
加拿大 100
英國 200
法國 300
日本 250
SELECT SUM(population),
CASE country
WHEN '中國' THEN '亞洲'
WHEN '日本' THEN '亞洲'
WHEN '美國' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
ELSE '其他'
END
FROM table_A
GROUP BY
CASE country
WHEN '中國' THEN '亞洲'
WHEN '日本' THEN '亞洲'
WHEN '美國' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
ELSE '其他'
END;
2>求各個分數段的人數
SELECT
SUM(CASE WHEN score = 81 THEN 1 end) 81,
SUM(CASE WHEN score = 82 THEN 1 end) 82,
SUM(CASE WHEN score = 83 THEN 1 end) 83
FROM SCORE;
註意:如果使用count(),也行。count()統計數據總數,sum()求和某欄位下麵的所有數據