美文网首页
按条件修改数据(case语句)

按条件修改数据(case语句)

作者: 羋学僧 | 来源:发表于2021-07-28 15:13 被阅读0次

题目

下图表名是“班级表”,请将班级中所有的1班、2班交换,0班变为3班。要求只使用更新语句(update),不要使用select语句。

解题思路

1. 题目要求按条件更换列中的内容,“条件”我们想到的是sql里的case表达式。

2. case...when...的使用方法:

CASE表达式
CASE WHEN <判断表达式> THEN <表达式>
WHEN <判断表达式> THEN <表达式>
WHEN <判断表达式> THEN <表达式>
...
ELSE <表达式>
END

3. 更新语句时需要用到update语句,update语句使用方法如下:

update 表名
set 列名 = 修改后的值;

解题步骤

1.确定case...when...语句中的内容

-- 第一个条件是1班换为2班,第二个条件是2班换为1班,最后剩下的0班全部变成3班,语句如下:
update 班级表
set 班级 = (case 班级
                when 1 then 2
                when 2 then 1
                else 3
           end);

查询更新完的班级表:已经更新成功。

本题考点

1)一般在做SQL面试题时,大部分都是使用select语句完成。但在工作中,也会经常遇到要更新数据的情况。本题考察对update语句的掌握

2)考察如何将业务条件用case表达式写出来。

举一反三

1. 在遇到需要将表内某列特定值替换成其他值时,记住case表达式如何使用。

2. 本题如果只是要求查询的话,使用select语句即可:

select (上面的case表达式) from 表名

3. 需要直接更新表中的数据的情况,熟记update语句。但要注意,在使用update更新表数据前,最好先将原表备份。

4. “按条件修改表数据”的应用例题

如下图所示的salary表,有m = 男性和f = 女性的值。交换所有的f和m的值(将所有f更改为m,m改为f)。要求只使用update的语句。

参考答案:

update salary
set sex = (case sex
               when 'm' then 'f'
               else 'm'
           end);

运行结果:

相关文章

网友评论

      本文标题:按条件修改数据(case语句)

      本文链接:https://www.haomeiwen.com/subject/nouzmltx.html