请参阅下面的DDL:为什么STUFF删除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')
和下面的SQL:
select * from #Test for xml path('')
返回:
<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>
这是我所期望的那样。现在看到下面的SQL:
SELECT distinct ID,
STUFF((select ','+ NAME from #Test as #Test1 where #Test1.id=#Test2.id FOR XML PATH('')),1,1,'') FROM #Test as #Test2
返回:
1 Ian,Mark
2 James
3 Karen,Suzie
这就是我想要的东西回来。但是,XML元素去哪了?
这是我读过的最重要的事情之一。这证明代码实际上是一种黑客攻击,可能在未来的版本中不可靠。这是正确的答案。 – Paul