我想实现以下目标:
UPDATE users
IF defaultView = @newDefault
THEN SET defaultView = NULL
ELSE SET defaultView = @newDefault
WHERE id = @userid
与您不同,SQL服务器无法理解我想要实现的目标。
那么,我将如何在一个SQL查询中执行此操作 - 语法正确?
答案 0 :(得分:4)
UPDATE users
defaultView =
CASE
WHEN defaultView = @newDefault
THEN NULL
ELSE @newDefault
END
WHERE id = @userid
答案 1 :(得分:2)
只需使用NULLIF
即可UPDATE users
SET defaultView = NULLIF(@newDefault , defaultView)
WHERE id = @userid
答案 2 :(得分:1)
您想使用案例陈述而不是IF ELSE
UPDATE users
set defaultview =
CASE
WHEN defaultview = @newDefault
THEN NULL
ELSE @newDefault
END
WHERE id = @userid