case 函数用于计算条件列表并返回多个可能结果
举例1:查询每个学生的学号和课程编号,如果成绩大于等于90分显示优秀,80-90分为良好,70-80为中等,60-70为及格,60分以下为不及格。
use 数据库
select
学号,
课程编号,
成绩等级=case
when 成绩>=90 then '优秀'
when 成绩>=80 and 成绩<90 then '良好'
when 成绩>=70 and 成绩<80 then '中等'
when 成绩>=60 and 成绩<70 then '及格'
else '不及格'
end
from 成绩表
举例2:更新学生表的学生信息,是男生年龄减1,女生年龄加1
use 数据库
updata 学生表
set 年龄= case
when sex='男' then 年龄-1
when sex='女' then 年龄+1
end
举例3:将成绩表中学生姓名,科目,成绩三个字段转换成学生姓名,语文成绩,数学成绩,英语成绩。
SELECT
学生姓名,
SUM( CASE WHEN `科目` = '语文' THEN `成绩` END ) AS 语文,
SUM( CASE WHEN `科目` = '数学' THEN `成绩` END ) AS 数学,
SUM( CASE WHEN `科目` = '英语' THEN `成绩` END ) AS 英语
FROM 成绩表
GROUP BY 学生姓名