2

我将以下 xml 传递给 SQL Server 存储过程:

<root>
    <id>6063</id>
    <id>6064</id>
</root>

在我的存储过程中,我有以下代码来选择 id:

SELECT t.n.value('id[1]', 'int')
FROM @xml.nodes('/root') as t(n)

现在这可行,但它显然只选择第一个 id 并停止。我不太确定如何制作这个“循环”并选择 xml 文件中的所有 id。

非常感谢任何帮助。

这是完整的存储过程供参考:

BEGIN

DECLARE @xml xml = '<root>
                        <id>6063</id>
                        <id>6064</id>
                    </root>'

SELECT t.n.value('id[1]', 'int') as id
FROM @xml.nodes('/root') as t(n)

END
4

1 回答 1

4

此 SQL 应该适合您:

DECLARE @xml xml = '<root>
                        <id>6063</id>
                        <id>6064</id>
                    </root>'

SELECT t.n.value('text()[1]', 'int') as id
FROM @xml.nodes('/root/id') as t(n)

此查询的结果是:

id
----
6063
6064

我没有从root元素中选择,而是选择了下面的所有id元素root并用于text()读取值。

希望有帮助。

于 2013-07-04T02:46:15.200 回答