1
我有一個名爲Content的表,其中有一個名爲data的varchar(max)列。varchar(max)列中的SQL查詢xml屬性
本專欄中的數據是XML格式(請注意,我沒有設計數據庫,所以我不知道爲什麼這個列不僅僅是XML格式,還有其他幾個XML列相同的數據庫...去圖...),我想查詢XML中的一個屬性。
我已經複製了下面的XML,我想查詢的是p3:productId值。目前我有這個(從另一個問題,我問這裏):
WITH XMLNAMESPACES(DEFAULT 'http://www.w3.org/2001/XMLSchema-instance'
,'http://www.w3.org/2001/XMLSchema-instance' AS p3)
SELECT CAST(Data AS XML).value(N'(/manifest/p3:productList/product/productId)[1]',N'nvarchar(max)')
FROM Content
但是,這只是返回所有行的NULL。
確定它是非常相似的東西,但不能很好地解決它,並且沒有太多的經驗來查詢XML(顯然!)。
<manifest xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p3="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.w3.org/2001/XMLSchema-instance"
p3:manifestDateTime="2016-02-17T17:34:29.5925096Z"
p3:manifestVersion="1.1" p3:manifestId="Some_Data">
<p3:productList>
<p3:product p3:releaseDateTime="2016-02-17T17:34:29.5925096Z"
p3:installSeqId="2" p3:uninstallSeqId="2" p3:releaseNum="1"
p3:productType="doc" p3:productId="WEDREZ020RRRP0GGG001" p3:mfgCode="GIRE">
真棒,這個作品一種享受。圖例:o) –