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
根据不同的条件情形,一次性更新同一个字段的所有值

静坐常思己过
闲谈莫论人非

浙公网安备 33010602011771号