1

我有一个带有 XML 列的表:

declare @xmltest xml;
set @xmltest =  
 '<list> 
    <el> <x>1</x> <y>one</y> </el>
    <el> <x>2</x> <y>two</y> </el>
  </list>'

使用 XQuery,我可以提取所有的 x:

 select @xmltest.query('/list/el/x')

哪个返回

<x>1</x><x>2</x>

但是如何将它们提取为 SQL 表,每行一个 x?

更好的是,如何将它们提取为 SQL 表,包含 x 和 y 两列,以便我可以使用 SQL 处理它们?

谢谢!

4

1 回答 1

1

您可以使用节点()值()

select 
  N.value('x[1]', 'int') as x,
  N.value('y[1]', 'varchar(10)') as y
from @xmltest.nodes('/list/el') as T(N)

结果:

x           y
----------- ----------
1           one
2           two
于 2011-08-05T15:04:16.153 回答