2017-02-13 179 views
1

我在網上做了很多關於這個問題的答案的研究。我發現了很多幫助網站,但不幸的是我沒有得到結果(我不太瞭解XML)。SQL Server 2012查詢XML列

我有一個表(稱爲CustomField.PersonCustomFieldValue),它具有存儲XML數據的XML數據類型列(稱爲XmlValue)。我不確定如何提取值。

存儲在列中的數據的一個例子是:

<XmlDataValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><Value xsi:type="xsd:string">NO</Value></XmlDataValue> 

如何提取字符串值?在這種情況下 - 「否」。

非常感謝。

+0

檢查[這](http://stackoverflow.com/questions/899313/select-values-from-xml-field-in-sql -server-2008)的問題,可能會幫助你通過! –

回答

0

試試這樣說:

DECLARE @xml XML= 
N'<XmlDataValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <Value xsi:type="xsd:string">NO</Value> 
</XmlDataValue>'; 
SELECT @xml.value(N'(/XmlDataValue/Value/text())[1]',N'nvarchar(max)'); 

這將返回相同的

SELECT @xml.value(N'(//Value)[1]',N'nvarchar(max)') 

但你應該總是儘可能具體!

調用此表的某一列如下:

SELECT XmlValue.value(N'(/XmlDataValue/Value/text())[1]',N'nvarchar(max)') 
FROM YourTable 
+0

許多人都感謝Shnugo。另一個問題,我如何調整列SQL以僅顯示某個值,而不在另一個Select中嵌套Select語句? –

+0

@MarkBell SO的一個原則是:一個問題 - 一個問題。請避免*後續問題。請開始一個新的問題,在其中放置一些示例代碼和預期輸出。您必須提供更多信息。我不知道,你有什麼其他選擇,你認爲在哪裏嵌套的東西......快樂編碼! – Shnugo