SQL之CASE表达式总结之二:利用CASE语句来更新字段的值

可以在UPDATE语句中使用CASE表达式来方便的更新字段的值

实例:有如下工资表:

要求:

(1)对目前工资为30000元以上的员工,降薪10%

(2)对目前工资为25000元以上且不满28000元的员工,加薪20%

(3)上述条件以外的情形的员工,保持不变

[分析]:
按照常规思路,直接对数据表的salary字段进行update修改,但一次只能书写一个条件例如对于宋江这名员工来说,30000元,要降薪10%,即调为27000,但调为27000以后,又满足了第二个条件(大于25000而小于28000),所以第二次用update时,又会在27000的基础上调高20%即27000*(1+20%)=324000了,这显然不符合题意,于是case语句又一次的闪亮登场了.


UPDATE test SET Salary = CASE WHEN Salary >= 30000 THEN Salary * 0.9
                              WHEN Salary BETWEEN 25000 AND 28000 THEN Salary * 1.2
                              ELSE Salary
                         END
GO
/*查看更新后的结果*/
SELECT * FROM test

 根据不同的条件情形,一次性更新同一个字段的所有值

 

posted @ 2018-11-24 14:33  Excel老坛  阅读(382)  评论(0)    收藏  举报