SQL进阶:一、CASE表达式

文章详细介绍了SQL中的CASE表达式的多种用法,包括根据性别转换文字、配合IN操作符进行区域统计、数值分类、行转列以及在UPDATE语句和条件分支中的应用。还展示了如何利用CASE结合IN和EXISTS谓词查询开课情况,并利用CASE和聚合函数处理学生社团信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 作为学习笔记存在

一、CASE表达式

-- 有两种表达式:
-- 表达式1
CASE gender 
	WHEN '1' THEN '男'
	WHEN '2' THEN '女'
	ELSE '未知性别' 
END AS 性别

-- 表达式2
CASE 
	WHEN gender = '1' THEN '男'
	WHEN gender = '2' THEN '女'
	ELSE '未知性别' 
END AS 性别

在CASE表达式里,可以使用BETEEN、LIKE和<,> ,IN等便利的谓词组合。

1.1 可以配合IN使用

-- 示例
CASE 
	WHEN city_name IN ('商丘','郑州') THEN '河南'
	WHEN city_name IN ('潍坊','淄博') THEN	'山东'
	ELSE '其它'
END

1.2 将已有编号方式转换为新的方式并统计

SELECT 
 CASE 
	 WHEN city_name IN ('郑州市','开封市','开封市','新乡市','周口市','商丘市') THEN '河南省' 
	 WHEN city_name IN ('南京市','无锡市','苏州市','常州市','南通市','扬州市') THEN '江苏省' 
	 ELSE '其他省份'
 END AS provinces ,
 sum(population) AS '总人口'
FROM poptbl p 
GROUP BY provinces;

1.3 将数值按照适当的级别进行分类统计

-- 按照人口数量等级查询市区个数。

SELECT 
	CASE 
		WHEN population < 100 THEN '低于
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杳杳明明

您的鼓励就是我的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值