是@mp:ID总是在XML文档的顺序?

我使用OPENXML解析一些XML。 我需要一个标识出的XML知道节点的顺序。

是@mp:ID总是为了? 我知道他们是不连续的,但他们至少在订单?

例如将下面的查询总是产生完全相同的顺序XML结果?

SELECT row_number() OVER (ORDER BY OrderID) rn, StepID, CONVERT(varchar(max), CONVERT(VARBINARY(max), StepID), 2), [ACTION] FROM OPENXML(@idoc, 'descendant::step |descendant::compref', 2) WITH ([OrderID] INT '@mp:id', [StepID] INT '@id', [Action] VARCHAR(max) 'parameterizedString[1]') ORDER BY rn

或者是@mp:ID的元数据之类的话,可以根据事情是如何去保存任何顺序?

--------------解决方案-------------

你没有权利为了保证。 拥有它,您可以生成数字序列(如NF表列号),然后查询使用XPath与position()函数的XML:

SELECT NF.Number,Order_id FROM NF
CROSS APPLY(SELECT Table.Row.value('@Id','int') Order_Id
FROM @xml.nodes('//Root/Order[position()=sql:column("NF.Number")]') AS Table(Row)) AS XMLTable

分类:SQL 时间:2015-03-14 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 2.643 (s). 10 q(s)