select仅返回XML中的一个项目

时间:2016-09-23 15:05:36

标签: arrays xml sql-server-2008

我有一个xml数组。当使用select时它只返回第一个值。这是我的代码。我的代码出了什么问题。

 DECLARE @xml xml;
SET @xml =N'<root>
  <Id>68890</Id>
  <Id>68900</Id>
</root>';

SELECT

    replicateIdXml.replicateIds.value('Id[1]','bigint') as id

  FROM @xml.nodes('/root') AS replicateIdXml (replicateIds)

它只返回第一行。

1 个答案:

答案 0 :(得分:2)

你非常接近。您的(gdb) b main Breakpoint 1 at 0x80483b7: file f.c, line 3. (gdb) r Starting program: /root/work/f Breakpoint 1, main () at f.c:3 3 __asm__("jmp L\n" (gdb) n Program received signal SIGSEGV, Segmentation fault. 0x080483ba in main () at f.c:3 3 __asm__("jmp L\n" (gdb) n Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. (gdb) 会返回第一级行的所有.nodes()元素。但是只有一个root - 元素...比你选择第一个root - 元素,这是你看到的元素。

您必须让Id按顺序返回所有.nodes() - 元素:

Id