我可以WHEN在UPDATE子句中使用多个条件来更新单个列.
我想更新具有列ID和NAME的表TABLE:
以下查询是否正确?
UPDATE TABLE
SET id = CASE id
WHEN id IN (2, 3, 4) THEN 1
WHEN id= 5 THEN 8
WHEN id IN(9, 7) THEN 6
WHERE name = 'abc'
Run Code Online (Sandbox Code Playgroud)
是的,这是允许的,但ID之后删除CASE.而且,你需要END你的情况.
UPDATE TABLE
SET ID = CASE
when ID in (2,3,4)
then 1
when ID = 5
then 8
when ID in (9,7)
then 6
END
where NAME = 'abc'
Run Code Online (Sandbox Code Playgroud)
CASE有两种备用语法.如上所述,另一个是您想要将单个值与其他值进行比较的位置,如下所示:
UPDATE TABLE
SET ID = CASE ID
when 2
then 1
when 5
then 8
when 7
then 6
END
where NAME = 'abc'
Run Code Online (Sandbox Code Playgroud)