從XML數據我旁邊XML:SQL Server 2008中查詢,選擇與參數
SET @MyXML =
'
<pairs>
<p>
<Name>France</Name>
<Val>Paris</Val>
</p>
<p>
<Name>England</Name>
<Val>London</Val>
</p>
<p>
<Name>Spain</Name>
<Val>Madrid</Val>
</p>
</pairs>
'
我需要用這種方式從這個XML中獲取數據 - 我已經設置參數「英格蘭」,並獲得「倫敦」。我的代碼是下一個,但它不工作:
SELECT
Tab.Col.query('p/.[(Val)[1] cast as xs:string? = "England"]') AS [Capital]
FROM
@MyXML.nodes('//pairs') Tab(Col)
我想念什麼?謝謝!
這有效!謝謝!我怎樣才能得到'倫敦',而不是'倫敦 '? –
@ViktorUnderoath在幾個答案中指出,您應該使用'.value()'而不是'.query()'。第二個將返回一個(部分)XML樹,第一個返回值就是這個值。如果你只對一個特定的值感興趣,根本就不需要'.nodes()'... – Shnugo
@ViktorUnderoath檢查編輯..如果它工作,PLZ upvote並標記爲答案 –