case when 条件 then 内容 else 内容 end 起的列名 !!else 可以不用 如果只有一个内容
类似于 c#中的 if else 这个方法用的频率还是比较高的
情形1 求和
比如:当年龄>50 多少人 sum(case when age>50 then 1 else 0 end) '年龄'
情形2 多个条件 处理 但是公用一个列名 比如 不同年龄段 0-50 51-100 101以上
select case when age>0 and age<50 then '年龄段1'
when age>50 and age<100 then '年龄段2'
else '年龄段3' end '年龄'
这样 年龄 这一列中 就有3个 内容 年龄段 然后可以在根据 年龄这一列名 分组 找到各个数量
情形3 根据规则生成新的一列 在供后续操作 分组 求和 之类
情形4 行专列