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 课程号