gpt4 book ai didi

tsql - TSQL:使用FOR XML每个元素一行

转载 作者:行者123 更新时间:2023-12-03 23:24:42 28 4
gpt4 key购买 nike

我有一个SQL Server 2005查询,该查询生成较大的结果集(最大为数GB):

SELECT * FROM Product FOR XML PATH('Product')


运行查询将生成包含包含许多产品元素的文档的单行:

Row 1:
<Product>
<Name>Product One</Name>
<Price>10.00</Price>
</Product>
<Product>
<Name>Product Two</Name>
<Price>20.00</Price>
</Product>
...


我想更改查询,以使结果集不是返回包含单个包含多个产品元素的文档的一行结果,而是返回多个行,每个包含单个包含Product元素的文档的行:

Row 1:
<Product>
<Name>Product One</Name>
<Price>10.00</Price>
</Product>

Row 2:
<Product>
<Name>Product Two</Name>
<Price>20.00</Price>
</Product>


最后,我想使用IDataReader从C#中使用此查询,而无需将SQL Server或我的应用程序将整个结果集都加载到内存中。我可以对SQL进行任何更改以启用此方案吗?

最佳答案

我想您想要这样的东西。(您可以在AdventureWorks的查询下面运行)

SELECT ProductID
,( SELECT * FROM Production.Product AS b WHERE a.ProductID= b.ProductID FOR XML PATH('Name') ) AS RowXML
FROM Production.Product AS a

关于tsql - TSQL:使用FOR XML每个元素一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13982871/

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