语法格式
case
when 查询条件1 then
值1
when 查询条件2 then
值2
when 查询条件3 then
值
...
else
默认值
end
个人理解
类似于先新加一列然后根据条件判断更改该列中相关值
动图演示(以简单使用中的数据为例,以excel为展示中介)
简单使用
有下表:
SELECT CUSTOMERS.*,
CASE WHEN SEX='F' THEN '女'
ELSE '男'
END AS 性别
FROM CUSTOMERS;
运行效果如下:
与聚合函数搭配
--利用sum求奖金小于三千的人数(包括null值)
SELECT
SUM(case
WHEN NVL(comm,0)<3000 THEN 1
ELSE 0
END)
FROM EMP;
运行效果如下:
拓:
nvl(列名,自然数)
nvl——将指定列名中的空值替换为自然数