Nie możesz być pewien kolejności ciągów połączonych bez instrukcji order by w zapytaniu podrzędnym. .value('.', 'varchar(max)')
część służy do obsługi przypadku, w którym Label
zawiera nieprzyjazne dla XML znaki takie jak &
.
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