[英]How to use FOR XML in Subqueries?
I'd like to return the below xml: 我想返回下面的xml:
<ResultDetails>
<Node1>hello</Node1>
<Sites>
<Site><SiteId>1</SiteId></Site>
<Site><SiteId>2</SiteId></Site>
</Sites>
</ResultDetails>
I wrote the below code but doesn't work: 我写了下面的代码,但不起作用:
SELECT 'hello' AS Node1,
(SELECT TOP 2 SiteId
FROM [dbo].[Sites]
FOR XML PATH('Site')) AS Sites
FOR XML PATH('ResultDetails')
but it returns: 但它返回:
<ResultDetails>
<row>
<Node1>hello</Node1>
<Sites><Site><siteId>102</siteId></Site><Site><siteId>1</siteId></Site></Sites>
</row>
</ResultDetails>
What sql should I write? 我应该写什么SQL?
thanks, 谢谢,
You need to add the TYPE
modifier to your inner query: 您需要将TYPE
修饰符添加到内部查询:
SELECT
'hello' AS Node1
, (
SELECT TOP 2 SiteId
FROM [dbo].[Sites]
FOR XML PATH('Site'), TYPE
) AS Sites
FOR XML PATH('ResultDetails')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.