gpt4 book ai didi

sql - 带有 UPDATE SET CASE 语句的 T-SQL MERGE - 没有 ELSE 会发生什么?

转载 作者:行者123 更新时间:2023-12-05 01:11:02 29 4
gpt4 key购买 nike

我正在编写一个 TSQL MERGE 语句来处理 UPDATE 和 INSERT 的通常组合。我有几个选择列,只有在(例如)参数设置为 TRUE 时才应更新。例如:

...
UPDATE SET
TARGET.[SomeColumn] =
CASE
WHEN @someParameter = 1 THEN SOURCE.[SomeColumn]
END,
...

根据我能找到的所有文档,ELSE 绝对是可选的(与大多数语言一样),但我不明白如果在这里省略会发生什么。

我当然可以做以下事情:

...
UPDATE SET
TARGET.[SomeColumn] =
CASE
WHEN @someParameter = 1 THEN SOURCE.[SomeColumn]
ELSE TARGET.[SomeColumn] --This is the new line
END,
...

.. 但这似乎在重写现有值时带来了不必要的开销。

所以我的问题是如果ELSE被省略并且@someParameter设置为0(FALSE)会发生什么,这是否失败,设置NULL,保持值不变, 或者...?

最佳答案

它在 MERGE 中的 UPDATE 中的事实实际上是无关紧要的,尽管您不知道这一点。相关documentation is that for the CASE keyword :

ELSE else_result_expression

      Is the expression returned if no comparison operation evaluates to TRUE. If this argument is omitted and no comparison operation evaluates to TRUE, CASE returns NULL.

关于sql - 带有 UPDATE SET CASE 语句的 T-SQL MERGE - 没有 ELSE 会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351168/

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