2016-11-29 8 views
0

は私が、私はSQLクエリのケース?

  • 従業員(EMP_NAME、通り、都市)
  • ワークス(EMP_NAME上で動作するように持っている上の表を以下している私のデータベースで

    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.でクエリを持っていますCOMPANY_NAME、給与)

  • カンパニー(COMPANY_NAME、都市)
  • が管理(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
UPDATE ... 
    SET salary = CASE 
        WHEN salary * 1.10 > 100000 
        THEN salary * 1.03 
        ELSE salary * 1.10 
       END 
WHERE ... 

- または -

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