SQL之CASE表示式總結之二:利用CASE語句來更新欄位的值
阿新 • • 發佈:2018-11-24
可以在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
根據不同的條件情形,一次性更新同一個欄位的所有值