1.case的两种格式
简单 case函数 和 case 搜索函数
case表达式
- 简单 case 函数
CASE SCORE WHEN 'A' THEN '优' ELSE '不及格' END
CASE SCORE WHEN 'B' THEN '良' ELSE '不及格' END
CASE SCORE WHEN 'C' THEN '中' ELSE '不及格' END
- case 搜索函数
CASE WHEN SCORE = 'A' THEN '优'
WHEN SCORE = 'B' THEN '良'
WHEN SCORE = 'C' THEN '中' ELSE '不及格' END
HEN后边的值与ELSE后边的值类型应一致,否则会报错。如下:
CASE SCORE WHEN 'A' THEN '优' ELSE 0 END
2.举例
下图表名是“班级表”,请将班级中所有的1班、2班交换,0班变为3班。要求只使用更新语句(update),不要使用select语句。
解题步骤:
- 更新语句时需要用到update语句
update 表名
set 列名 = 修改后的值;
- 确定case...when...语句中的内容
第一个条件是1班换为2班,第二个条件是2班换为1班,最后剩下的0班全部变成3班
case 班级
when 1 then 2 #将1换为2
when 2 then 1 #将2换为1
else 3 #剩下值(0)换为3
end
- 因为本题要求不能使用select语句,而是直接使用update将表内数据更新。结合上面提到的update语句
update 班级表
set 班级 = (case 班级
when 1 then 2
when 2 then 1
else 3
end);