oracle SQL增加字段值
您好,我有一个关于SQL oracle的简单问题。如果是IT部门,我需要增加员工7%的工资, 12%属于业务部门, 其他部门为5% 最后显示 修订后的工资保留两位小数 以下是我的员工表:oracle SQL增加字段值,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,您好,我有一个关于SQL oracle的简单问题。如果是IT部门,我需要增加员工7%的工资, 12%属于业务部门, 其他部门为5% 最后显示 修订后的工资保留两位小数 以下是我的员工表: employeeID Dept Salary emp1 IT 2000 emp2 BS 3000 emp3 MK 4000 emp4 EG
employeeID Dept Salary
emp1 IT 2000
emp2 BS 3000
emp3 MK 4000
emp4 EG 5000
注:BS=业务部门,MK=营销部门,EG=工程部门您可以在更新语句中使用表达式。它比解码更详细、更容易解释
比如说,
显示:
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;
更新:
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;
使用解码功能:
UPDATE employee
SET salary = salary*decode (dept,
'IT', 1.07,
'BS', 1.12,
...,
1.05)
如果喜欢“谢谢”,但我不想更新,我想显示新的更改以及当前值,如:empid、dept、old salary、revised salary,请使用
CASE。@otadm确定,请查看更新的答案。请将其标记为已回答,这也会帮助其他人。