SQL中的case when then else end用法

(一)简单用法:

1.第一种写法:

SELECT id,name,case when type = 1 then '通用文件' when type = 2 then
 '专案文件' else '未知文件' end '文件类型' FROM bas_role_info

2.第二种写法:

SELECT id,name,case type when  1 then '通用文件' when 2 then '专案文件'
 else '未知文件' end '文件类型' FROM bas_role_info

两个运行结果一样:

在这里插入图片描述

  需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略
  --比如说,下面这段SQL,你永远无法得到“第二类”这个结果
  CASE WHEN col_1 IN ('a','b') THEN '第一类'
WHEN col_1 IN ('a')     THEN '第二类'
  ELSE'其他' END

(二)分组:

数据库population表:
在这里插入图片描述

SELECT country, SUM(CASE 
	WHEN type = 1 THEN
		population 
	ELSE
		0
END
) as 东部人口,SUM(CASE 
	WHEN type = 2 THEN
		population 
	ELSE
		0
END 
) as 西部人口,SUM(CASE 
	WHEN type = 3 THEN
		population 
	ELSE
		0
END 
) as 其他人口 FROM population GROUP BY country

结果:
在这里插入图片描述


数据库population表:
在这里插入图片描述

SELECT 
SUM(population) as '人口',
case when country = '中国' then '亚洲'
when country = '俄罗斯' then '亚洲'
when country = '英国' then '欧洲'
else '其他洲' end as '洲'
FROM population GROUP BY case when country = '中国' then '亚洲'
when country = '俄罗斯' then '亚洲'
when country = '英国' then '欧洲'
else '其他洲' end

结果:
在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶孤崖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值