我希望能夠使用SQL查詢中的輸出作爲SQL Server 2012中XML查詢中的參數。下面是一個示例。sql server 2012中xml的問題
Declare @xml = (Select uniqueTaxID, taxName
from Taxes
where orderGroup = @someNumber
for xml path('Tax'), root('Taxes'))
預期的輸出將爲我提供訂單的所有適用稅費。可能有1個稅或幾個稅。
輸出示例:
<Taxes>
<Tax>
<uniqueTaxID>1</uniqueTaxID>
<taxName>Some Tax</taxName>
</Tax>
<Tax>
<uniqueTaxID>2</uniqueTaxID>
<taxName>Some Other Tax</taxName>
</Tax>
</Taxes>
現在我還有一個簡單的SQL查詢
Select taxID, someItem, @xml.query('
for $i in Taxes/Tax/uniqueTaxID
return Taxes/Tax/taxName
') from someGroupOfItems
不幸的是它是書面的方式,我會得到兩個<taxName>
元素。我需要這是動態的。如果taxID
是1,那麼我希望我的XML查詢返回Some Tax
,如果它是2,那麼它將返回Some Other Tax
。
我想:
Select taxID, someItem, @xml.query('
for $i in Taxes/Tax/uniqueTaxID
where $i = ' + taxID + '
return $i')
但是,這給了我錯誤
XML數據類型的方法「查詢」的參數1必須是一個字符串文字。
如果我直接在它工作正常鍵入數字,所以我知道它有什麼與我的串聯字符串
是否有理由使用XML來做到這一點?爲什麼不在一個查詢中使用表之間的外連接? – 2013-03-25 20:23:38