case when的常见用法
用法1:新列赋值
select name,
course,
case
when course <> '会计班' then '计算机'
else '非计算机'
end as 'category'
from ScoreInfo;
输出结果:
解释:顾名思义(新列赋值),其核心就是通过已有的列值,来动态的生成一个新列,后续可以直接将它作为指标,或者将它进行二次利用,比如插进一个临时表,赋给变量等;
用法2:作为 where 的判断条件
select *
from ScoreInfo
where case
when name = '阿波' then 1
when name = '阿浪' then 1
else 0
end = 1;
输出结果:
解释:只有满足我 case when 的行,才能被查出来,在以上SQL中,只有最后 then 的结果为1的,才能被查出来。【then 1 = 1】;
用法3:条件统计
源数据:
SQL:
select name,
sum(case when score >= 80 then score else 0 end) as count
from ScoreInfo
group by name;
输出结果:
解释:【聚合+case when+用法1】,简单来讲,就是可以根据一个指定的范围(日期、时间、金额等)去做统计,最后再以一个新列的方式给展示出来;
结语:人生的确很难,但请坚持下去,因为只要活着,就一定会有希望!