Possiamo mettere un segno di uguale (=) dopo le funzioni aggregate in Transact-SQL?


11

Ho incontrato uno script come questo:

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

Non riesco a capire il significato del segno di uguale (=) dopo la seconda somma delle parole chiave. Quando eseguo la query non mostra alcun errore sia con il segno uguale che senza.

Voglio sapere lo scopo di mettere un segno di uguale dopo la parola chiave sum. È un errore o no?

Grazie

Risposte:


19

Questo è documentato in UPDATE (Transact-SQL) :

SET @variable = column = expression imposta la variabile sullo stesso valore della colonna. Ciò differisce da SET @variable = colonna, colonna = espressione, che imposta la variabile sul valore pre-aggiornamento della colonna.

Nel tuo esempio di codice, sumè il nome (non saggio) di una colonna, non un aggregato.

db <> demo violino

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.