【问题标题】:Is it possible to write two UPDATE functions with two conditions in a single query?是否可以在单个查询中编写两个具有两个条件的 UPDATE 函数?
【发布时间】:2021-04-14 12:44:53
【问题描述】:

我想要实现的是一个单个查询来更新这两个值。 如果可能的话。

我有一个名为 employee 的表,其中有 3 列 salary城市员工

我已经完成了需要做的事情,

我需要做的是:

  • 城市 1:更新每月收入
  • 城市 2:更新月收入

city salary employees
city1 650 employee1
cit2 700 employee2

我的两个单独的查询是:

#1

UPDATE employee
SET salary=  salary+ (salary* 15 / 100)
WHERE city= 'city1' AND salary<=800;

#2

UPDATE employee
SET salary=  salary+ (salary* 18 / 100)
WHERE city= 'city2' AND salary<=800;;

【问题讨论】:

    标签: sql oracle oracle-sqldeveloper


    【解决方案1】:

    您可以使用case 表达式:

    UPDATE employee
        SET salary = salary * (1 + CASE WHEN city = 'city1' THEN 15 ELSE 18 END) / 100
        WHERE city IN ('city1', 'city2') AND salary <= 800;
    

    【讨论】:

      猜你喜欢
      • 2012-03-11
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      • 2013-01-10
      • 2012-04-07
      • 1970-01-01
      • 2021-07-31
      • 2022-01-17
      相关资源
      最近更新 更多