Jed*_*Jed 19 t-sql sql-server conditional
使用T-SQL,我想执行一个UPDATE语句,只有在定义了相应的变量时才会设置列.
这是我想要完成的一个简单的伪tsql示例:
--Declaring vars
@ID int,
@Name nvarchar(20),
@Password nvarchar(10)
--Run the update
UPDATE User
SET
IF LEN(@NAME) > 0
Name = @Name,
IF LEN(@Password) > 0
Password = @Password
Run Code Online (Sandbox Code Playgroud)
通过阅读IF条件如何在T-SQL中工作,我可以看出,为了完成与上面的伪代码相同的结果,我将不得不为每个IF条件创建一个UPDATE语句 - 这就是我想要的避免不得不这样做.
是否可以仅使用一个UPDATE语句基于条件动态设置字段/列? - 如果是的话,怎么样?
gbn*_*gbn 45
UPDATE User
SET
Name = CASE WHEN LEN(@NAME) > 0 THEN @Name ELSE Name END,
Password = CASE WHEN LEN(@Password) > 0 THEN @Password ELSE Password END
WHERE
...
Run Code Online (Sandbox Code Playgroud)