MySQL中的case/when/then/end语法

-- 第一种
SELECT
CASE
		tpra_tpye 
		WHEN 1 THEN
		'tpra类型' 
		WHEN 2 THEN
		'问题行为' ELSE '没有类型' 
	END 
	FROM
		tp_supervision_content 
	WHERE
		lesson_date LIKE '2022-05%';
	
-- 第二种
SELECT
CASE	
	WHEN
		tpra_tpye = 1 THEN
			'tpra类型' 
			WHEN tpra_tpye = 2 THEN
			'问题行为' ELSE '没有类型' 
		END 
		FROM
			tp_supervision_content 
		WHERE
			lesson_date LIKE '2022-05%';

/*
第一种和第二种可以实现相同的效果,第一种写法相对简洁,但功能有所限制,多条件时应使用第二种
*/
	
-- 多case使用(展示多列)
SELECT
	( CASE tpra_tpye WHEN 1 THEN 'tpra类型' END ) tpra,
	( CASE tpra_tpye WHEN 2 THEN '问题行为' END ) 问题行为 
FROM
	tp_supervision_content 
WHERE
	lesson_date LIKE '2022-05%';

-- 配合函数使用	
SELECT
	SUM( CASE WHEN tpra_tpye = 1 AND content_status = 1 THEN 1 ELSE 0 END ) AS '有效tpra',
	SUM( CASE tpra_tpye WHEN 2 THEN 1 ELSE 0 END ) AS '问题行为' 
FROM
	tp_supervision_content 
WHERE
	lesson_date LIKE '2022-05%';

各种场景的详细解释:https://blog.csdn.net/weixin_30568591/article/details/98794163?utm_medium=distribute.pc_relevant.none-task-blog-title-6&spm=1001.2101.3001.4242

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值