1
私は、dataと呼ばれるvarchar(max)カラムを持つContentというテーブルを持っています。varchar(max)カラムのSQLクエリxml属性
この列のデータはXML形式です(データベースを設計していないため、この列がXML形式ではない理由がわかりません。同じデータベース... go figure ...)、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">
素晴らしい、これは動作します:あなたの
<p3:productList>
の多くの<p3:product>
異なる要素が存在する場合.nodes()
コールは、同じクエリを可能にします治療伝説:o) –