【发布时间】:2014-09-09 09:05:13
【问题描述】:
我正在尝试从 SQL 数据库中检索一些被“根”节点包围的 XML 列,但我发现很难找到正确的语法。
基本上,我在一个 XML 列中有详细信息,我想返回一个 XML 结果,将所有列分组为父节点的子节点。
所以...鉴于此:
declare @changes table (order_no varchar(10), details xml)
insert into @changes values ('123', null)
insert into @changes values ('456', null)
update @changes set details = '<ORDER><ORDER_ID>' + order_no + '</ORDER_ID></ORDER>'
...我想生成这样的 XML...
<ORDERS>
<ORDER>
<ORDER_ID>123</ORDER_ID>
</ORDER>
<ORDER>
<ORDER_ID>456</ORDER_ID>
</ORDER>
</ORDERS>
我认为这将是“根”子句的变体,以使根节点成为“ORDERS”,但我似乎无法摆脱每个“记录”周围的“详细信息”父节点。即。
select details
from @changes
for xml path(''), root('ORDERS')
谢谢。
编辑:
我已经通过以下方式完成了我需要的工作,但这是最好的方式吗?
select details.query('/ORDER')
from @changes
for xml path(''), root('ORDERS')
【问题讨论】:
标签: sql-server xml