it-swarm.com.de

Können wir nach aggregierten Funktionen in Transact-SQL ein Gleichheitszeichen (=) setzen?

Ich bin auf ein Skript wie dieses gestoßen:

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

Ich kann die Bedeutung des Gleichheitszeichens (=) nach der zweiten Schlüsselwortsumme nicht verstehen. Wenn ich die Abfrage ausführe, werden keine Fehler sowohl mit als auch ohne Gleichheitszeichen angezeigt.

Ich möchte wissen, wozu nach dem Schlüsselwort sum ein Gleichheitszeichen steht. Ist das ein Fehler oder nicht?

Vielen Dank

11
igelr

Dies ist dokumentiert in PDATE (Transact-SQL) :

SET @variable = column = expression setzt die Variable auf den gleichen Wert wie die Spalte. Dies unterscheidet sich von SET @variable = column, column = expression, wodurch die Variable auf den Wert vor der Aktualisierung der Spalte gesetzt wird.

In Ihrem Codebeispiel ist sum der (unkluge) Name einer Spalte, kein Aggregat.

db <> Geigen-Demo

19
Paul White 9