SQL Server - 查询XML文档以获取ID列表

时间:2014-04-10 17:52:34

标签: sql-server xpath sql-server-2012 sqlxml

从此文档中提取ID列表的正确方法是什么?

    declare @d xml
    set @d = '<doc><id>1</id><id>2</id></doc>'

    select Data.Col.value('/text()', 'Int')
      from @d.nodes('/doc/id')
        as Data(Col)

使用上面的方法我收到错误 XQuery [value()]:&#39; value()&#39;需要一个单例(或空序列),找到类型为&#39; xdt:untypedAtomic *&#39;

的操作数

1 个答案:

答案 0 :(得分:1)

.value()始终需要位置引用来标识所需的节点。

declare @d xml
set @d = '<doc><id>1</id><id>2</id></doc>'

select Data.Col.value('.[1]', 'Int')
  from @d.nodes('/doc/id')
    as Data(Col)