我们可以在 Transact-SQL 中的聚合函数后放置等号 (=) 吗?

ige*_*elr 11 sql-server syntax aggregate t-sql

我遇到过这样的脚本:

set @sum = sum = (case when somecol1 is null then DATEDIFF(d,[somecol2],somecol3) else 0 end)
Run Code Online (Sandbox Code Playgroud)

我无法理解第二个关键字 sum 后面的等号 (=) 的含义。当我运行查询时,它没有显示任何带有等号和不带等号的错误。

我想知道在关键字后面放一个等号的目的sum。这是错误还是错误?

谢谢

Pau*_*ite 19

这记录在UPDATE (Transact-SQL) 中

SET @variable = column = expression 将变量设置为与列相同的值。这与 SET @variable = column, column = expression 不同,后者将变量设置为列的更新前值。

在您的代码示例中,sum是列的(不明智的)名称,而不是聚合。

db<>小提琴演示