例如,我有以下SQL返回Xml代码<B><A Value="1"/></B>
。
select
1 [@Value]
for xml path ('A'), root ('B')
现在我想将其包装在<D><C>......</C></D>
中,以便预期结果为<D><C><X><B><A Value="1"/></B></X></C></D>
。我可以通过将sql包装为子查询来实现。
select
(select
1 [@Value]
for xml path ('A'), root ('B'), type)
for xml path ('C'), root('D')
这是一种没有子查询的方法吗?
答案 0 :(得分:1)
在您的情况下,可以这样做:
SELECT 1 [X/B/A/@Value]
FOR XML PATH('C'), ROOT ('D')
结果
<D>
<C>
<X>
<B>
<A Value="1" />
</B>
</X>
</C>
</D>
但是有(经常)情况,你需要在子查询中包装它。