如何在 XML 文档中找到节点的顺序?
我拥有的是这样的文件:
<value code="1">
<value code="11">
<value code="111"/>
</value>
<value code="12">
<value code="121">
<value code="1211"/>
<value code="1212"/>
</value>
</value>
</value>
我正试图把这个东西放到一个定义如下的表中
CREATE TABLE values(
code int,
parent_code int,
ord int
)
保留 XML 文档中值的顺序(它们不能按其代码排序)。我想能够说
SELECT code
FROM values
WHERE parent_code = 121
ORDER BY ord
并且结果应该确定地是
code
1211
1212
我努力了
SELECT
value.value('@code', 'varchar(20)') code,
value.value('../@code', 'varchar(20)') parent,
value.value('position()', 'int')
FROM @xml.nodes('/root//value') n(value)
ORDER BY code desc
但它不接受该position()
函数(' position()
' 只能在谓词或 XPath 选择器中使用)。
我想这是可能的,但如何?