CASE WHEN 用法

Case具有两种格式。简单Case函数和Case搜索函数。

--简单Case函数CASEsexWHEN'1'THEN'男'WHEN'2'THEN'女'ELSE'其他'END--Case搜索函数CASEWHENsex ='1'THEN'男'WHENsex ='2'THEN'女'ELSE'其他'END

这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。

还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。

--比如说,下面这段SQL,你永远无法得到“第二类”这个结果

CASE WHEN col_1 IN('a','b') THEN '第一类' WHEN col_1 IN('a') THEN '第二类'  ELSE '其他'END

我们也可以用这个方法来判断工资的等级,并统计每一等级的人数。SQL代码如下;

SELECT

CASE WHEN salary <= 500  THEN'1'

WHEN salary > 500 AND salary <= 600 THEN '2'

WHEN salary > 600 AND salary <= 800 THEN '3'

WHEN salary > 800 AND salary<=1000 THEN '4'

ELSE NULL END salary_class,COUNT(*)

FROM Table_A GROUP BY

CASE WHEN salary <= 500 THEN'1'

WHEN salary > 500 AND salary <= 600 THEN'2'

WHEN salary > 600 AND salary <= 800 THEN'3'

WHEN salary > 800 AND salary <= 1000 THEN'4' ELSE NULL END;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容