pqs*_*qsk 91 sql case sql-update
我想知道这是否可行.如果条件为真,我想更新列x,否则将更新列y
UPDATE table SET
(CASE (CONDITION) WHEN TRUE THEN columnx
ELSE columny
END)
= 25
Run Code Online (Sandbox Code Playgroud)
我搜索了一遍,尝试了一些东西,但无法找到解决方案.我认为这是不可能的,但我想我会问这里,看看是否有人之前做过.提前致谢.
Ada*_*son 168
您不能使用条件来更改查询的结构,只需更改所涉及的数据.你可以这样做:
update table set
columnx = (case when condition then 25 else columnx end),
columny = (case when condition then columny else 25 end)
Run Code Online (Sandbox Code Playgroud)
这在语义上是相同的,但请记住,两列都将始终更新.这可能不会给您带来任何问题,但如果您的事务量很高,那么这可能会导致并发问题.
具体做你要问的唯一方法是使用动态SQL.然而,这是我鼓励你远离的东西.上面的解决方案几乎肯定足以满足您的需求.
Qua*_*noi 22
UPDATE table
SET columnx = CASE WHEN condition THEN 25 ELSE columnx END,
columny = CASE WHEN condition THEN columny ELSE 25 END
Run Code Online (Sandbox Code Playgroud)
小智 7
我知道这是一个非常古老的问题,但这对我有用:
UPDATE TABLE SET FIELD1 =
CASE
WHEN FIELD1 = Condition1 THEN 'Result1'
WHEN FIELD1 = Condition2 THEN 'Result2'
WHEN FIELD1 = Condition3 THEN 'Result3'
END;
Run Code Online (Sandbox Code Playgroud)
问候
我想使用 Case 语句将我的 ContactNo 更改或更新为 8018070999,其中有 8018070777
update [Contacts] set contactNo=(case
when contactNo=8018070777 then 8018070999
else
contactNo
end)
Run Code Online (Sandbox Code Playgroud)