SQL查询中的案例?

时间:2016-11-29 03:50:14

标签: mysql sql database case-statement

我在MySQL中有一个查询 Give all managers of First Bank Corporation a 10 percent salary raise unless the salary become greater than $100000; in such cases, give only a 3 percent raise.

在我的数据库中,我有以下表格,我必须在其上工作

  • 员工(emp_name,街道,城市)
  • Works(emp_name,company_name,salary)
  • 公司(company_name,city)
  • 管理(emp_name,manager_name)`

我已完成查询的一半,现在我不知道如何做其他部分

Update Works
    set Salary= salary + salary * 0.10
    where company_name = 'First Bank Corporation' AND
          emp_name IN (Select manager_name from Manages) AND
          salary > 100000;

1 个答案:

答案 0 :(得分:1)

UPDATE ...
   SET salary = CASE
                  WHEN salary * 1.10 > 100000
                  THEN salary * 1.03
                  ELSE salary * 1.10
                END
 WHERE ... 

-OR -

UPDATE ...
   SET salary = salary * CASE
                           WHEN salary * 1.10 > 100000
                           THEN 1.03
                           ELSE 1.10
                         END
 WHERE ...