根据条件逻辑更新表列值

Siz*_*aul 8 sql t-sql sql-server postgresql sql-server-2008-r2

我有这样的表:

name | salary 
Tom  | 10000
Mary | 20000
Jack | 30000
Lisa | 40000
Jake | 60000
Run Code Online (Sandbox Code Playgroud)

我需要一个更新查询来根据薪水列包含的值来更新薪水列。

工资需要增加:

  • 5000 表示 10000 到 15000 之间的值
  • 15000 到 20000 之间的值为 7000
  • 8000 表示 20000 到 30000 之间的值
  • 10000 表示 40000 到 60000 之间的值

chr*_*dam 8

尝试在UPDATE命令中使用CASE语句

UPDATE
    [yourtablename]
SET
    salary = 
         CASE 
            WHEN salary BETWEEN 10000 AND 15000 THEN salary + 5000 
            WHEN salary BETWEEN 15000 AND 20000 THEN salary + 7000 
            WHEN salary BETWEEN 20000 AND 30000 THEN salary + 8000 
            WHEN salary BETWEEN 40000 AND 60000 THEN salary + 10000 
            ELSE salary
         END 
Run Code Online (Sandbox Code Playgroud)