1. 程式人生 > >SQL之CASE表示式總結之二:利用CASE語句來更新欄位的值

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

 根據不同的條件情形,一次性更新同一個欄位的所有值