Неверный синтаксис рядом с 'FOR' - PullRequest
0 голосов
/ 29 апреля 2019

Следующий код не работает -

SELECT [LY-1], 
       LY = STUFF((SELECT ',' + name FROM temp1 FOR XML PATH ('')), 1,      1, '' ) 
FROM temp1 
GROUP BY [LY-1];

Как указано ниже, ошибка -

Сообщение 103010, уровень 16, состояние 1, строка 73 Ошибка разбора в строке:2, столбец: 36: Неверный синтаксис рядом с 'temp1'.

Не работают ли STUFF и FOR XML Хранилище данных?и есть ли альтернатива для них?

1 Ответ

0 голосов
/ 29 апреля 2019

Я не думаю, что знак равенства работает так, как вы хотите.Предполагая, что LY - это вычисляемый столбец, а не столбец, который уже существует в таблице, запрос должен выглядеть следующим образом:

SELECT [LY-1], 
       STUFF((SELECT ',' + name FROM temp1 FOR XML PATH ('')), 1,      1, '' ) AS LY
FROM temp1 
GROUP BY [LY-1];

Чтобы TSQL создавал вычисляемые столбцы, сначала всегда используйте логику, а затем присвойте столбцу имя.

...