我們試圖根據我們提供的值過濾一組XML。SQL Server 2008 XPath
在我們的數據庫的XML字段中,我們有以下XML,如果傳遞數字「5052095050830」,我們需要在XML中找到這個特定的節點。我們提供的號碼可能存在多次。
任何機構可以提供一些示例SQL來協助嗎?
感謝
<Attributes>
<ProductVariantAttribute ID="4387">
<ProductVariantAttributeValue>
<Value>5052095050830</Value>
</ProductVariantAttributeValue>
</ProductVariantAttribute>
<ProductVariantAttribute ID="9999">
<ProductVariantAttributeValue>
<Value>5052095050830</Value>
</ProductVariantAttributeValue>
</ProductVariantAttribute>
<ProductVariantAttribute ID="4388">
<ProductVariantAttributeValue>
<Value>104401330A</Value>
</ProductVariantAttributeValue>
</ProductVariantAttribute>
<ProductVariantAttribute ID="4389">
<ProductVariantAttributeValue>
<Value>6905</Value>
</ProductVariantAttributeValue>
</ProductVariantAttribute>
<ProductVariantAttribute ID="4390">
<ProductVariantAttributeValue>
<Value>6906</Value>
</ProductVariantAttributeValue>
</ProductVariantAttribute>
<ProductVariantAttribute ID="4391">
<ProductVariantAttributeValue>
<Value>Monday, October 27, 2008</Value>
</ProductVariantAttributeValue>
</ProductVariantAttribute>
</Attributes>
謝謝 - 我幾乎沒有了。我試圖讓這樣的工作。這是要麼零結果。我究竟做錯了什麼? 'DECLARE @Barcode VARCHAR SELECT @Barcode = '5052095050830' SELECT * FROM Nop_ProductVariantAttributeCombination WHERE AttributesXml.exist('/屬性/ ProductVariantAttribute/ProductVariantAttributeValue /值[文本()= 「SQL:可變(@Barcode)」 ]')= 1' – ajbrun 2011-04-15 13:24:18
@Adrian:不確定 - 但你應該嘗試使用'sql:variable':'/ Value [text()= sql:variable(@Barcode)]'' - 你也可以想在聲明它的時候給你的'@ Barcode'變量一個長度 - 否則它是'VARCHAR(1)',我相信... – 2011-04-15 14:03:27