我正在尝试从xml字段中提取参数,但似乎无法弄清楚如何通过参数的name属性过滤我的参数。
XML
<parameters>
<parameter name="id">
<item>2</item>
</parameter>
<parameter name="channel">
<item>retail</item>
<item>wholesale</item>
</parameter>
</parameters>
我正在尝试提取int 2并在随后的查询中提取零售和批发。
我已经看到它在网上做了很多不同的方式,但似乎没有一个对我有用。任何帮助将不胜感激。
谢谢!
答案 0 :(得分:4)
试试这个:
declare @x xml = '<parameters>
<parameter name="id">
<item>2</item>
</parameter>
<parameter name="channel">
<item>retail</item>
<item>wholesale</item>
</parameter>
</parameters>'
select t.s.value('.', 'nvarchar(max)')
from @x.nodes('//parameter[@name = "id"]/item') t(s)
返回以下表格:
2