包含条件判断的更新语句

Shuang 260 信誉分
2025-01-27T02:26:26.0233333+00:00

想要实现下面这个更新逻辑:

UPDATE MyTable 
    IF Val = @Default_Value 
    THEN SET Val = NULL
    ELSE SET Val = @Default_Value 
WHERE id = @id

SQL是否支持这样的条件判断式的更新?

开发人员技术 | Transact-SQL
SQL Server | 其他
0 个注释 无注释

问题作者接受的答案
LiHongMSFT-4306 31,621 信誉分
2025-01-27T02:47:17.85+00:00

你好,

SQL是否支持这样的条件判断式的更新?

是支持的。根据你的问题描述,我觉得这里可以使用CASE WHEN或者NULLIF来进行判断。

像这样:

UPDATE MyTable 
SET Val = CASE WHEN Val <> @Default_Value 
               THEN @Default_Value ELSE NULL END
WHERE id = @id

或者:

UPDATE MyTable 
SET Val = NULLIF(@Default_Value , Val)
WHERE id = @id

如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。

此答案是否有帮助?

0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

提问者可以将答案标记为“已接受”,审查方可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。