一、case when 语句语法逻辑
case when 是mySQL里面的控制流语句,和if…then…的分支判断逻辑很相似。
case when语句有两种:
(1)简单case when
(2)case搜索函数法
简单case when只能处理等式问题,case搜索函数法可以处理等式问题也可以处理不等式问题。
case when的语法逻辑
#
case
when Condition1 then result1
when Condition2 then result2
......
else result
end
#或者end as name1
#end非常容易丢,一定要注意
二、case when语句在业务中常见的几种用法
2.1 数据映射处理
比如将分类变量中每一个取值分别映射成0、1、2…5;所有用户的性别映射成0、1;或者把数值映射成具体的实际含义。
如果是映射性别(0为女,1为男)
select *,
case
when is_male = 0 then '女'
else '男'
end as is_male_new
from table1
2.2. 连续数据离散化处理(分箱操作)
有时需要对数据进行分箱操作,也就是连续数据离散化处理。比如将所有用户按照收入分为高、中、低收入人群;按年龄可以将总体分为老年、中年、青年全体;按用户访问次数将群体分为高活跃状态用户、中等活跃状态用户、低活跃状态用户。分箱操作之后,就可以进行用户群分析等研究操作。
代码如下:
select *,
case
when year(<