Sql 这可以用一个简单的语句来简化吗?

Sql 这可以用一个简单的语句来简化吗?,sql,sql-server,Sql,Sql Server,如何简化此代码?只需将整列的Null更新为具有相应ID的名称 update salesman set name = 'James Hoog' where salesman_id = 5001 update salesman set name = 'Nail Knite' where salesman_id = 5002 update salesman set name = 'Pit Alex' where Salesman_id = 5005 update salesman set n

如何简化此代码?只需将整列的
Null
更新为具有相应ID的名称

update salesman 
set name = 'James Hoog'
where salesman_id = 5001

update salesman
set name = 'Nail Knite' 
where salesman_id = 5002

update salesman
set name = 'Pit Alex'
where Salesman_id = 5005

update salesman
set name = 'Mc Lyon' 
where salesman_id = 5006

使用
CASE
语句为每个
saller\u id

这样试试

UPDATE salesman 
SET    NAME = CASE salesman_id 
                WHEN 5001 THEN 'James Hoog' 
                WHEN 5002 THEN 'Nail Knite' 
                WHEN 5005 THEN 'Pit Alex' 
                WHEN 5006 THEN 'Mc Lyon' 
              END 
WHERE  salesman_id IN ( 5001, 5002, 5005, 5006 ) 

如果名称和id位于不同的表中,则执行更新/联接

WITH cte as (
    SELECT 'James Hoog' as name, 5001 as salesman_id UNION ALL 
    SELECT 'Nail Knite' as name, 5002 as salesman_id UNION ALL 
    SELECT 'Pit Alex'   as name, 5005 as salesman_id UNION ALL 
    SELECT 'Mc Lyon'    as name, 5006 as salesman_id 
)
UPDATE s
SET s.name = c.name
FROM salesman  s
JOIN cte c
  ON s.salesman_id = c.salesman_id

尝试进行
合并

MERGE salesman AS t
USING (VALUES
    (5001, 'James Hoog'),
    (5002, 'Nail Knite'),
    (5005, 'Pit Alex'),
    (5006, 'Mc Lyon'))
    AS s (salesmain_id, name)
ON (t.salesman_id = s.salesman_id)
WHEN MATCHED THEN
    UPDATE SET name = s.name;

有其他名字的行呢?谢谢。如果我要在给定列表中添加两组新列:纽约、巴黎、伦敦、丹麦作为地点,工资为1500、1300、1200、1100,分别为5001、5002、5005、5006,该怎么办?如何以最简单的方式在一条语句中将它们添加到代码中?
UPDATE salesman SET
      NAME = CASE WHEN salesman_id = 5001 THEN 'James Hoog' 
                  WHEN salesman_id = 5002 THEN 'Nail Knite' 
                  WHEN salesman_id = 5005 THEN 'Pit Alex' 
                  WHEN salesman_id = 5006 THEN 'Mc Lyon' END
WHERE salesman_id IN (5001,5002,5005,5006)