gpt4 book ai didi

sql-server - T-SQL : Update column only if value is provided

转载 作者:行者123 更新时间:2023-12-03 15:00:25 25 4
gpt4 key购买 nike

目前我有这个 UPDATE 语句:

UPDATE Customer 
SET Name = @Name,
Age = @Age,
Email = @Email
...

现在,只有在提供值的情况下,我才需要将列包含到 UPDATE 语句中。否则,不要在 UPDATE 语句中包含该列。

所以在概念上可能是这样的:

UPDATE Customer 
SET
IF LEN(@Name) > 0 THEN Name = @Name,
IF LEN(@Age) > 0 THEN Age = @Age,
IF LEN(@Email ) > 0 THEN Email = @Email
...

有什么办法可以做到这一点吗?我正在考虑动态查询,但更新列的列表超长,因此需要做大量工作才能更改为这样的动态查询:

SET @SQL = 'UPDATE Customer SET '

IF LEN(@Name) > 0
SET @SQL = @SQL + 'Name = @Name,'

IF LEN(@Age) > 0
SET @SQL = @SQL + 'Age= @Age,'

最佳答案

我认为你应该试试这个(在声明和设置变量@Name、@Age 和@Email 之后)

    UPDATE Customer SET
Name = case when @Name is null then Name else @Name end,
Age = case when @Age is null then Age else @Age end,
Email= case when @Email is null then Email else @Email end,
...

如果任何变量的值为空,则不会更新该字段。

关于sql-server - T-SQL : Update column only if value is provided,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53772278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com