CASE WHEN 用法

2019-10-07  本文已影响0人  changxiaonan

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;

上一篇 下一篇

猜你喜欢

热点阅读