gpt4 book ai didi

sql - 为什么 STUFF 会删除 XML?

转载 作者:行者123 更新时间:2023-12-03 13:33:49 26 4
gpt4 key购买 nike

请参阅下面的 DDL:

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 元素到哪里去了?

最佳答案

您必须将苹果与苹果进行比较。虽然这是真的

select * from #Test for xml path('')

产生一些看起来像 XML 的东西(但技术上不是因为它没有根元素),这个(你实际运行的)
select ',' + name from #Test for xml path('')

没有。在我的机器上,它产生 ff 字符串:“,Ian,Mark,James,Karen,Suzie”。从那里,stuff 函数敲击第一个逗号,您将获得一个逗号分隔值列表。

关于sql - 为什么 STUFF 会删除 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30273944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com