达梦数据库 update 嵌套case when
时间: 2023-10-13 21:23:30 浏览: 139
DmJdbcDriver,达梦数据库maven版本,dm.jdbc.driver.DmDriver
达梦数据库的 UPDATE 语句支持嵌套 CASE WHEN 条件语句,可以根据不同的条件更新不同的值。语法如下:
```
UPDATE 表名
SET 列名 = CASE
WHEN 条件1 THEN
CASE
WHEN 条件1.1 THEN 值1.1
WHEN 条件1.2 THEN 值1.2
ELSE 值1.3
END
WHEN 条件2 THEN
CASE
WHEN 条件2.1 THEN 值2.1
WHEN 条件2.2 THEN 值2.2
ELSE 值2.3
END
ELSE 值3
END
WHERE 条件;
```
其中,条件1、条件2等是逻辑表达式,值1.1、值1.2等是要更新的值。
示例:
```
UPDATE employee
SET salary = CASE
WHEN department = 'Sales' THEN
CASE
WHEN age < 30 THEN 3000
WHEN age >= 30 AND age < 40 THEN 4000
ELSE 5000
END
WHEN department = 'Marketing' THEN
CASE
WHEN age < 30 THEN 3500
WHEN age >= 30 AND age < 40 THEN 4500
ELSE 5500
END
ELSE 2500
END
WHERE city = 'Shanghai';
```
以上示例中,根据员工所在的部门和年龄段,更新员工的薪资。如果部门是销售部,根据年龄分别更新为3000、4000、5000;如果部门是市场部,根据年龄分别更新为3500、4500、5500;如果部门不是销售部或市场部,则更新为2500。更新的条件是员工所在城市是上海。
阅读全文