2012-08-13 45 views
0

我使用嵌套查询来连接聚合的行数据。我在嵌套查询中使用的语法是XML PATH连接语法

for XML PATH ('') 

有人可以解释什么是应该在上面的引号之间?我做了一些测试,看起来它只是将我的行数据封装在开始和结束HTML(如标签)中。

回答

0

空字符串('')是一种特殊情况。你的观察是正确的,因为无论你放在哪里,都会用你打开和关闭的XML标签来包围你的行。例如,如果你说“for xml path('a')”,它将用<a> </a>包围你的结果。

1

我不是100%肯定你的意思,但如果您的查询类似于那么下面可以帮助你:

SELECT R.RegionID AS [@RID], 
      R.Enabled AS [@Enabled], 
      (
      SELECT  ST.TypeID AS [@TID], 
         QT.[Name] AS [@QTName], 
      FROM  Type ST 
      INNER JOIN QuarryType QT ON ST.QuarryTypeID = QT.QuarryTypeID 
      WHERE  R.RegionID = ST.RegionID 
      FOR XML PATH ('QuarryType'), TYPE 
     ) 
FROM  Region R   
FOR XML PATH ('Region'), ELEMENTS, ROOT('root') 

正如你可以看到每个​​块文字是没有什么特别的,无论如何与数据无关。它用于元素名称在XML输出是这样的:

<root> 
    <Region RID="123" Enabled="true"> 
     <QuarryType TID="4" QTName="Quarry 1"/> 
     <QuarryType TID="7" QTName="Quarry 2"/> 
     <QuarryType TID="9" QTName="Quarry 5"/> 
    </Region> 
</root> 

如果您需要更多的帮助,只问!