Объединение многих строк в одну текстовую строку с группировкой
У меня есть следующая таблица: tblFile
![tblFile]()
Мой желаемый вывод:
![enter image description here]()
Я объединяю много строк в одну текстовую строку; однако, я не могу правильно определить группировку. Поскольку код теперь будет отображаться для каждой записи в поле FileNameString: AAA, BBB, CCC, DDD, EEE, FFF
Любые предложения с группировкой!
SELECT FileID, Stuff(
(SELECT N', ' + CONVERT(Varchar, FileName)
FROM tblFile FOR XML PATH(''),TYPE )
.value('text()[1]','nvarchar(max)'),1,2,N'')AS FileNameString
From tblFile
GROUP BY FileID
Ответы
Ответ 1
попробуйте это -
SELECT DISTINCT
fileid
, STUFF((
SELECT N', ' + CAST([filename] AS VARCHAR(255))
FROM tblFile f2
WHERE f1.fileid = f2.fileid ---- string with grouping by fileid
FOR XML PATH (''), TYPE), 1, 2, '') AS FileNameString
FROM tblFile f1