在 T-SQL UPDATE 语句中实现 IF 条件
使用 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
通过阅读 IF 条件在 T-SQL 中的工作原理,我可以看出,为了实现与上述伪代码相同的结果,我必须创建每个 IF 条件的 UPDATE 语句 - 这是我试图避免必须做的事情。
是否可以仅使用一个 UPDATE 语句根据条件动态设置字段/列? - 如果是这样,怎么办?
Using T-SQL, I would like to execute an UPDATE statement that will SET columns only if the corresponding variables are defined.
Here's a simple pseudo-tsql example of what I'm trying to accomplish:
--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
From what I can tell by reading how IF conditions work in T-SQL, in order to accomplish the same result as the above pseudo code, I would have to create an UPDATE statement for every IF condition - which is what I'm trying to avoid having to do.
Is it possible to dynamically SET fields/columns based on a condition using only one UPDATE statement? - If so, how?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
CASE 表达式
The CASE expression
我认为这会很有用:
你喜欢它吗?
享受。
I think this will be useful:
Do you like it?
Enjoy.