case when 按条件修改列中的内容

1.case的两种格式

简单 case函数 和 case 搜索函数
case表达式


image
  • 简单 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语句。


image

解题步骤:

  1. 更新语句时需要用到update语句
update 表名
set 列名 = 修改后的值;
  1. 确定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
  1. 因为本题要求不能使用select语句,而是直接使用update将表内数据更新。结合上面提到的update语句
update 班级表
set 班级 = (case 班级
                when 1 then 2
                when 2 then 1
                else 3
           end);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容