查询不生成所需的xml输出

时间:2017-06-19 09:23:12

标签: mysql sql-server

我正在尝试生成以下xml,但它没有按照需要生成:

<partyIds>
   <id>2222</id>
   <id>2222</id>
   <id>2222</id>
</partyIds> 

我的查询生成的xml如下:

<partyIds>
   <companyId>105612</companyId>
</partyIds>
<partyIds>
   <companyId>106079</companyId>
</partyIds>

查询

SELECT DISTINCT top 1000 (mc.companyId)
FROM ciqMarketCap mc 
JOIN ciqCompany c 
       ON c.companyid = mc.companyid
WHERE c.companyStatusTypeId NOT IN (5,6) AND  c.companyTypeId IN (1,4) for xml path('partyIds')

2 个答案:

答案 0 :(得分:1)

你需要定义root。

  

用于xml路径(&#39;&#39;),root(&#39; partyIds&#39;)

答案 1 :(得分:0)

以下是如何将列别名与for xml属性组合的示例:

select top (3) ao.object_id as [id]
from sys.all_objects ao
for xml path(''), type, root('partyIds');

或者,这种语法也可以起作用:

select top (3) ao.object_id as [node()]
from sys.all_objects ao
for xml path('id'), type, root('partyIds');