如何提取xml列的元素?

时间:2013-08-13 22:13:15

标签: sql xml sql-server-2008 xquery

如何将元素提取到xml列?

<V>
  <r>
    <ID>alkj</ID>
    <Date>2013-01-02T00:00:00-02:00</Date>
    <Value>97429.91</Value>
  </r>
  <r>
    <ID>asdf</ID>
    <Date>2014-01-02T00:00:00-02:00</Date>
    <Value>90121.18</Value>
  </r>
<V>

只需要元素v中的内容,返回需要是:

<r>
    <ID>alkj</ID>
    <Date>2013-01-02T00:00:00-02:00</Date>
    <Value>97429.91</Value>
  </r>
  <r>
    <ID>asdf</ID>
    <Date>2014-01-02T00:00:00-02:00</Date>
    <Value>90121.18</Value>
</r>

但我无法使用

select colunaxml.query('(/v/r)') from tabela

因为V并不总是V!但内部元素总是r

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

SELECT colunaxml.query('(/*/r)')

如果您已经知道父元素名称将始终类似于<v><a><b><c>,那么当您指定时,XPath可能会执行得更快它们:

SELECT colunaxml.query('(/(v | a | b | c)/r)')