如何使用 CASE WHEN 子句更新多列?
时间: 2024-06-10 08:04:03 浏览: 68
sql 中 case when 语法使用方法
5星 · 资源好评率100%
可以使用 CASE WHEN 子句来更新多列。语法如下:
```
UPDATE 表名
SET 列1 = CASE
WHEN 条件1 THEN 值1
WHEN 条件2 THEN 值2
ELSE 值3
END,
列2 = CASE
WHEN 条件1 THEN 值4
WHEN 条件2 THEN 值5
ELSE 值6
END,
...
WHERE 条件;
```
其中,列1、列2等是要更新的列名,条件1、条件2等是满足更新条件的条件表达式,值1、值2等是要更新的值。ELSE 子句可选,用于指定当所有条件都不满足时的默认值。
下面是一个示例,假设有一个员工表(employees),包含员工ID(employee_id)、姓名(name)和年龄(age)三个列,我们想要根据不同的条件更新不同的列:
```
UPDATE employees
SET name = CASE
WHEN employee_id = 1 THEN 'John'
WHEN employee_id = 2 THEN 'Alice'
ELSE 'Unknown'
END,
age = CASE
WHEN employee_id = 1 THEN 30
WHEN employee_id = 2 THEN 25
ELSE 0
END
WHERE employee_id IN (1, 2);
```
这个示例将根据员工ID更新相应的姓名和年龄。
阅读全文