目录
(1)语法:case when...then...else...end
①简单语法(两个条件):case when (criteria1) then (name1) else (name2 )end
1.case when函数的语法和用法
(1)语法:case when...then...else...end
①简单语法(两个条件):case when (criteria1) then (name1) else (name2 )end
即case when (条件1) then (命名1) else (命名2 )end
②多条件:case when (criteria1) then (name1)else (criteria2) then (name2)...[else (criteria i) then (name i)] ...else(name n )end
(2)用法:对某目标字段按条件进行分组
类似于Excel的IF函数,也类似于python中的if...else嵌套使用。
2.实例
(1)两个条件判断分组。
例1:对性别进行分组并获取该字段以及姓名、年龄的信息。假设性别字段储存的是1(代表男性),0(代表女性),表名为table。
select name,age,
case when sex=1 then '男' else '女' end as sex
from table
例2:对性别进行分组获取该字段并按该字段维度获取年龄和。
select case when sex=1 then '男' else '女' end as sex,
sum(age) as age
from table
group by case when sex=1 then '男' else '女' end
(2)多条件判断分组。
例:按年龄分段获取字段并获取该字段以及姓名、性别的信息。
select name,
case when sex=1 then '男' else '女' end as sex,
case when age<18 then '儿童' else age<40 then '青年'
else age <65 then '中年人' else '老年人' end as age
from table
注意:case when用做字段时需要在end后面另外命名,as可以忽略,比如以上代码中“(as)sex”;用group by语法处理case when时end后面不能加上命名,直接以end结束即可,否则会报错。