Чи можемо ми поставити знак рівності (=) після сукупності функцій у Transact-SQL?


11

Я зіткнувся з таким сценарієм:

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

Я не можу зрозуміти значення знаку рівності (=) після другої суми ключових слів. Коли я запускаю запит, він не відображає помилок як зі знаком рівності, так і без нього.

Я хочу знати, як поставити знак рівності після ключового слова sum. Це помилка чи ні?

Спасибі

Відповіді:


19

Це задокументовано в UPDATE (Transact-SQL) :

SET @variable = column = вираз встановлює змінну на те саме значення, що і стовпець. Це відрізняється від SET @variable = стовпець, column = вираз, який встановлює змінну на значення попереднього оновлення стовпця.

У вашому прикладі коду sum- це (нерозумно) назва стовпця, а не сукупність.

db <> скриптова демонстрація

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.