首页 > 解决方案 > 根据当前工资更新激励栏

问题描述

CREATE TABLE EMPSAL
(
  ID INT ,
  NAME VARCHAR(40),
  SALARY FLOAT,
  INCENTIVES FLOAT  
)

INSERT INTO EMPSAL VALUES (1,'ABHI',500,NULL)
INSERT INTO EMPSAL VALUES (2,'BABY',600,NULL)
INSERT INTO EMPSAL VALUES (3,'CHARAN',3000,NULL)
INSERT INTO EMPSAL VALUES (4,'DHANA',4000,NULL)
INSERT INTO EMPSAL VALUES (5,'EMO',5000,NULL)
INSERT INTO EMPSAL VALUES (6,'FARAN',6000,NULL)
INSERT INTO EMPSAL VALUES (7,'GEO',7000,NULL)
INSERT INTO EMPSAL VALUES (8,'JAHANGEER',8000,NULL)

如果薪水 < 1000,则将激励列更新为 (SALARY + 5% OF SALARY)。

如果薪水 < 5000,则将激励列更新为 (SALARY + 7% OF SALARY)。

如果薪水高于 6000,则将激励列更新为 SALARY。

我不知道如何启动此查询。

标签: sqlsql-servertsql

解决方案


只需Case像下面这样使用:

Update EMPSAL
Set Incentive =
Case
    WHEN Salary < 1000 then SALARY * 1.05  
    WHEN Salary < 5000 AND salary >= 1000 THEN SALARY *  1.07
    ELSE SALARY
End

推荐阅读