我需要從我的關係數據庫中提取數據作爲XML,並且我需要爲每個提取的記錄分配一個數字。我寫了下面的XQuery ...有沒有辦法對提取的記錄進行編號。
<myRecords> {
let $i := 0
for $Territories in collection("Northwind.dbo.Territories")/Territories
let $i := $i + 1
return
<territory rec_count="{$i}">
{$Territories/TerritoryDescription/text()}
</territory>
} </myRecords>
...我沒有得到結果,我預計:
<myRecords>
<territory rec_count="1">Westboro</territory>
<territory rec_count="1">Bedford</territory>
<territory rec_count="1">Georgetown</territory>
…
記錄數量沒有增加。爲什麼?例如,您無法真正在XQuery中創建狀態概念,例如您可能在Java或C#中創建XQuery狀態概念。在某些情況下,您可以使用遞歸函數來模擬狀態,但爲了解決這個問題,有一個更簡單的解決方案:您可以使用位置變量。這裏的XQuery的:
<myRecords> {
for $Territories at $i in collection("Northwind.dbo.Territories")/Territories
return
<territory rec_count="{$i}">
{$Territories/TerritoryDescription/text()}
</territory>
} </myRecords>
而這裏的(希望的)結果:
<myRecords>
<territory rec_count="1">Westboro</territory>
<territory rec_count="2">Bedford</territory>
<territory rec_count="3">Georgetow</territory>
…
其工作,非常感謝你。 – Siddhu 2012-07-09 04:06:40