SQL 服务器查询:更新设置一列

SQL Server query : UPDATE SET one column

有没有办法在查询更新中执行SET IN命令?

UPDATE table_a 
SET status IN (A, B, C) 
WHERE id IN (1, 2, 3)

我做了语法,但出现错误:

Incorrect syntax near the keyword 'IN'.

你在下面的 set 子句上弄错了是正确的 sql

UPDATE table_a 
SET status='A'
WHERE id IN (1,2,3)

如果你想在单个查询中根据 id 进行多次更新

UPDATE table_a
    SET status = CASE id
        WHEN 1 THEN A
        WHEN 2 THEN B
        WHEN 3 THEN C
    END
WHERE id IN (1,2,3)

我想这是你的要求,根据id设置不同的状态

你也可以使用这个:

INSERT into table_a (id, status)
VALUES
    (1, 'A'),
    (2, 'B'),
    (3, 'C')
ON DUPLICATE KEY UPDATE
    status = VALUES(status);

使用 case 语句更新基于条件的值,如 "case when id=1 then 'A' WHEN ID=2 THEN 'B' and so on"。 前任。 更新 tab_a set status=case when id=1 then 'A' WHEN id=2 then 'B' WHEN id=3 THEN 'C' end 其中 id 在 (1,2,3)

如果您想使用 1、2、3 以外的默认值更新完整的 table 然后 更新 tab_a set status=case when id=1 then 'A' WHEN id=2 then 'B' WHEN id=3 THEN 'C' else 'Z' end