sql casewhen函数,列转行
2022-07-20 本文已影响0人
饱饱想要的灵感
- 简单查询, 类似
switch-case
CASE sex
WHEN '1' THEN '男'
WHEN '0' THEN '女'
ELSE '其他' END
- 复杂查询, 类似
if-else
, pg的case when null
实现需采取此用法
CASE WHEN sex = '1' THEN '男'
WHEN sex <> '0' THEN '非女'
ELSE '其他' END
- 构造列转行, 分类统计, 即
case-when
外面再套一个统计函数
select sum(case when score >= 90 then 1 else 0 end) as 优秀人数,
sum(case when score < 90 then 1 else 0 end) as 不优秀人数,
sum(case when score is null then 1 else 0 end) as 未统计人数,
count(*) as 总人数
from user;