Si prega di vedere il DDL di seguito:Perché STUFF rimuove XML?
create table #Test (id int,Name varchar(30))
insert into #Test values (1,'Ian')
insert into #Test values(1,'Mark')
insert into #Test values(2,'James')
insert into #Test values(3,'Karen')
insert into #Test values(3,'Suzie')
e SQL di seguito:
select * from #Test for xml path('')
che restituisce:
<id>1</id>
<Name>Ian</Name>
<id>1</id>
<Name>Mark</Name>
<id>2</id>
<Name>James</Name>
<id>3</id>
<Name>Karen</Name>
<id>3</id>
<Name>Suzie</Name>
Questo è quello che mi aspetterei. Ora, vedere lo SQL qui sotto:
SELECT distinct ID,
STUFF((select ','+ NAME from #Test as #Test1 where #Test1.id=#Test2.id FOR XML PATH('')),1,1,'') FROM #Test as #Test2
che restituisce:
1 Ian,Mark
2 James
3 Karen,Suzie
Questo è quello che voglio restituito. Tuttavia, dove sono finiti gli elementi XML?
Questa è una delle cose più importanti che ho letto su questo. Ciò dimostra che il codice è in realtà un hack e probabilmente non può essere invocato nelle versioni future. Questa è la risposta corretta. – Paul