在同一个update语句中包含多个列的多个case语句,可以使用以下语法:
UPDATE 表名
SET 列名1 = CASE
WHEN 条件1 THEN 值1
WHEN 条件2 THEN 值2
...
ELSE 默认值
END,
列名2 = CASE
WHEN 条件3 THEN 值3
WHEN 条件4 THEN 值4
...
ELSE 默认值
END,
...
WHERE 条件;
其中,表名
是要更新的表的名称,列名1
、列名2
等是要更新的列的名称,条件1
、条件2
等是用于判断要更新的值的条件,值1
、值2
等是满足条件时要更新的值,默认值
是当没有条件满足时的默认值,条件
是用于筛选要更新的行的条件。
这种语法可以同时更新多个列的值,每个列都可以有多个条件和对应的值。当满足某个条件时,对应的列的值会被更新为对应的值;当没有条件满足时,对应的列的值会被更新为默认值。
以下是一个示例:
UPDATE employees
SET salary = CASE
WHEN department = 'IT' THEN salary * 1.1
WHEN department = 'HR' THEN salary * 1.2
ELSE salary
END,
bonus = CASE
WHEN department = 'IT' THEN 1000
WHEN department = 'HR' THEN 2000
ELSE 0
END
WHERE age > 30;
以上示例中,根据员工所在的部门不同,更新了salary
和bonus
两个列的值。如果员工所在的部门是IT部门,则将salary
增加10%,bonus
设置为1000;如果员工所在的部门是HR部门,则将salary
增加20%,bonus
设置为2000;其他部门的员工salary
和bonus
保持不变。
注意,以上示例中的表名为employees
,列名为salary
、bonus
,条件为department
和age
,仅供参考。实际使用时,请根据具体的表结构和需求进行调整。
腾讯云相关产品和产品介绍链接地址:
以上是腾讯云提供的一些相关产品,供参考。请根据具体需求选择适合的产品。
领取专属 10元无门槛券
手把手带您无忧上云