我有一个数据库中的XML列具有以下搜索XML数据在MS SQL
<SelectedValues haveDefaultsBeenSet="true">
<SelectedValue>
<Name>Item Condition</Name>
<Value>New</Value>
<ValueID>1000</ValueID>
</SelectedValue>
<SelectedValue>
<Name>Brand</Name>
<Value>Sony</Value>
</SelectedValue>
<SelectedValue>
<Name>MPN</Name>
<Value>8</Value>
</SelectedValue>
<SelectedValue>
<Name>Model</Name>
<Value>DVD</Value>
</SelectedValue>
<SelectedValue>
<Name>MFR</Name>
<Value>Sony</Value>
</SelectedValue>
<SelectedValue>
<Name>PackQuantity</Name>
<Value>3</Value>
</SelectedValue>
</SelectedValues>
我想,当名称匹配MFR要返回的值。所以,当我在寻找MFR我正在寻找的结果索尼
我已经试过这
SELECT Itemspecifics.value('(/SelectedValues/SelectedValue/Value)[1]', 'varchar(max)') as MFR
FROM [SixBit_BT].[dbo].[ItemsEbay]
Where itemspecifics.exist('//.[text()="MFR"]') = 1
哪个不工作,只显示有MFR在XML列的结果,但它给我的在这种情况下的第一个值'新'。如果我将[1]更改为[5]。我确实得到了这个例子的正确结果,但它并不总是处于这个位置。
需要[1]但工作完美 – James 2014-10-06 17:56:21