sql - 根据Deisgnation增加工资

use*_*499 0 sql oracle

在我的应用程序中,我需要一个具有以下条件的查询.

  1. 如果员工是实习生,则增加1000美元(A)
  2. 如果员工是机械师,则增加2000美元(B)
  3. 如果员工是Enginner,则增加$ 3000(C)
  4. 如果员工是经理,则增加5000美元(D)

我有以下列的表

  • Emploee_ID
  • 员工姓名
  • Emloyee_Salary_per_Month
  • Employee_Salary_per_annum
  • Emploee_designation(A,B,C或D)

任何人都可以告诉我如何为这种情况编写SQL查询?

jue*_*n d 7

update employee
set Emloyee_Salary_per_Month = Emloyee_Salary_per_Month +
                               case when Emploee_designation = 'A'
                                    then 1000
                                    when Emploee_designation = 'B'
                                    then 2000
                                    when Emploee_designation = 'C'
                                    then 3000
                                    when Emploee_designation = 'D'
                                    then 5000
                                    else 0
                               end
Run Code Online (Sandbox Code Playgroud)

  • 我会认真考虑为Employee_Salary_per_Month添加一个"else"子句.如果其他未获得增加或类别不好的员工突然被淘汰出局,那将是一种耻辱.(是的,我意识到这个问题只提到A,B,C和D). (3认同)