【问题标题】:Extract elements in xml to rows in select statement将xml中的元素提取到select语句中的行
【发布时间】:2010-12-03 18:22:58
【问题描述】:

我的 sql server 2008 数据库中有 xml 列。我的表的每一行中的 XML 示例

<document>
 <part1>
   <listitem>val1</listitem>
   <listitem>val2</listitem>
   <listitem>val3</listitem>
 </part1>
 <part2>
   <listitem>val4</listitem>
 </part2>
</document>

我想从所有行中选择所有元素。从上面的示例中,我应该得到四行带有 listitem 值的行。

答案是

select x.nd.value ('(.)[1]', 'varchar(250)') as ValuesFromXml
from TableWithXmlColumn t cross apply t.XmlContent.nodes (
'//listitem') x(nd);

感谢您的帮助

【问题讨论】:

    标签: sql xml xquery-sql


    【解决方案1】:

    你可以这样做:

    select Col.value('.', 'varchar(20)') 
    from yourtable 
    cross apply XmlColumn.nodes('//listitem') as NewTable(Col)
    

    【讨论】:

    • 如果您发布代码或 XML,在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮 (101 010) 以很好地格式化和语法高亮!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    相关资源
    最近更新 更多