Sql 按属性值筛选XML查询

Sql 按属性值筛选XML查询,sql,xml,tsql,xpath,xquery,Sql,Xml,Tsql,Xpath,Xquery,我试图从xml字段中提取参数,但似乎不知道如何通过参数的name属性过滤参数 XML 2. 零售业 批发 我试图提取int 2,并在随后的查询中提取单词retail和wholesale 我在网上看到过很多不同的方式,但似乎都不适合我。任何帮助都将不胜感激 谢谢 试试这个: declare @x xml = '<parameters> <parameter name="id"> <item>2</item> <

我试图从xml字段中提取参数,但似乎不知道如何通过参数的name属性过滤参数

XML


2.
零售业
批发
我试图提取int 2,并在随后的查询中提取单词retail和wholesale

我在网上看到过很多不同的方式,但似乎都不适合我。任何帮助都将不胜感激

谢谢

试试这个:

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)
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