你好,我在SQL oracle中有一个简单的问题。这就是我需要将员工的薪资增加7% ( IT部门),12% (业务部门),5% (其他部门)。最后,将修改后的薪资()显示为小数点后两位(),如下所示:
employeeID Dept Salary
emp1 IT 2000
emp2 BS 3000
emp3 MK 4000
emp4 EG 5000注: BS =营业部,MK =标记部,EG =工程部
发布于 2015-10-31 07:52:29
您可以在CASE UPDATE语句中使用表达式。它比解码更冗长,更易于解释。
例如,
To display:
SELECT employeeID,
Dept,
Salary,
CASE
WHEN dept = 'IT' THEN
salary + (7/100) * salary
WHEN dept = 'BS' THEN
salary + (12/100) * salary
ELSE
salary + (5/100) * salary
END as "New_Salary"
FROM employees;更新:
UPDATE employees
SET salary= CASE
WHEN dept = 'IT' THEN
salary + (7/100) * salary
WHEN dept = 'BS' THEN
salary + (12/100) * salary
ELSE
salary + (5/100) * salary
END;发布于 2015-10-31 07:54:36
使用解码功能:
UPDATE employee
SET salary = salary*decode (dept,
'IT', 1.07,
'BS', 1.12,
...,
1.05)https://stackoverflow.com/questions/33449272
复制相似问题