我想知道这是否可能。如果条件为真,我想更新列 x,否则将更新列 y
UPDATE table SET
(CASE (CONDITION) WHEN TRUE THEN columnx
ELSE columny
END)
= 25
我到处搜索,尝试了一些东西,但无法找到解决方案。我认为这是不可能的,但我想我应该在这里问一下,看看以前是否有人这样做过。
您不能使用条件来更改查询的结构,只能更改所涉及的数据。你可以这样做:
update table set
columnx = (case when condition then 25 else columnx end),
columny = (case when condition then columny else 25 end)
这在语义上是相同的,但请记住两列将始终更新. This probably不会给您带来任何问题,但如果您的交易量很大,那么这可能会导致并发问题。
唯一的办法就是具体来说你问的是使用动态SQL。然而,我鼓励您远离这种情况。上面的解决方案几乎肯定足以满足您的需求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)