SQL-Case When 用法
(1)简单Case函数
CASE sex ---sex是一列
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
(2)Case搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
第一种方法更加简洁些,第二种方法更容易看懂些。
实际例子:数据如下
country | population |
---|---|
中国 | 600 |
美国 | 100 |
加拿大 | 100 |
英国 | 20 |
法国 | 300 |
日本 | 250 |
德国 | 200 |
墨西哥 | 50 |
印度 | 250 |
我们想要统计亚洲,北美洲的人口数量,想要得到如下的表格:
zhou | population |
---|---|
亚洲 | 1100 |
北美洲 | 250 |
其他 | 700 |
Solution-使用case函数
SELECT
CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他'
END as '洲', SUM(population) '人口'
FROM datas
GROUP BY
CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他'
END;