MySQL中的case表达式

MySQL CASE表达式是一个流程控制结构,用在在SELECT、WHERE等语句中根据条件动态构造内容。

格式

CASE value
WHEN compare_value_1 THEN result_1
WHEN compare_value_2 THEN result_2
…
ELSE result END
CASE
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
…
ELSE result END

例1:行列互换

在这里插入图片描述


select 学号,
(case 课程号 when '0001' then 成绩 else 0 end) as '课程号0001',
(case 课程号 when '0002' then 成绩 else 0 end) as  '课程号0002',
(case 课程号 when '0003' then 成绩 else 0 end) as '课程号0003'
from score;

例2:不及格和及格人数统计

在这里插入图片描述

-- 查询出每门课程的及格人数和不及格人数
SELECT `课程号`,
sum(CASE 
	WHEN 成绩 >= 60	THEN
		1
	ELSE
		0
END 
)as 及格人数 ,

sum(case when 成绩 < 60 THEN 1 ELSE 0 END)as 不及格人数

from score GROUP BY 课程号

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43093501/article/details/97617992