web-dev-qa-db-ja.com

Transact-SQLの集計関数の後に等号(=)を配置できますか?

私はこのようなスクリプトに遭遇しました:

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

2番目のキーワード合計の後の等号(=)の意味が理解できません。クエリを実行すると、等号がある場合とない場合の両方でエラーが表示されません。

キーワードsumの後に等号を置く目的を知りたい。それは間違いですか?

ありがとう

11
igelr

これは PDATE(Transact-SQL) に記載されています。

SET @variable = column = expressionは、変数を列と同じ値に設定します。これは、変数を列の更新前の値に設定するSET @variable = column、column = expressionとは異なります。

コード例では、sumは列の(賢明ではない)名前であり、集計ではありません。

db <> fiddleデモ

19
Paul White 9