Sie können sich über die Reihenfolge der verketteten Zeichenfolgen ohne eine order by-Anweisung in der Unterabfrage nicht sicher sein. Der .value('.', 'varchar(max)')
Teil ist dazu da, den Fall zu behandeln, wo Label
enthält XML-unfreundlich Zeichen wie &
.
declare @T table(Response_ID int, Label varchar(50))
insert into @T values
(12147, 'It was not clear'),
(12458, 'Did not Undersstand'),
(12458, 'Was not resolved'),
(12458, 'Did not communicate'),
(12586, 'Spoke too fast'),
(12587, 'Too slow')
select T1.Response_ID,
stuff((select ','+T2.Label
from @T as T2
where T1.Response_ID = T2.Response_ID
for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as Label
from @T as T1
group by T1.Response_ID