2012-08-13 70 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> 

如果您需要更多的幫助,只問!