带有动态索引的XQuery
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有动态索引的XQuery相关的知识,希望对你有一定的参考价值。
我试图在SQL Server中使用XQuery,但我需要索引是动态的:
这是我的查询:
SELECT
CAST(yourXML AS XML).value('(/integracao/item/NumPedido)[1]', 'VARCHAR(MAX)') NumPedido
FROM
#xml
我尝试过的:
SELECT
CAST(yourXML AS XML).value('(/integracao/item/NumPedido)[sql:variable("@index")]', 'VARCHAR(MAX)') NumPedido
FROM
#xml
但它返回此错误:
XQuery [#xml.yourXML.value()]:'value()'需要一个单例(或空序列),找到'xdt:untypedAtomic *'类型的操作数
有人能帮帮我吗?
答案
看看Mikael Eriksson in this link的这篇文章
declare @Index INT = 2
declare @XML XML = '
<Root>
<Element>Hello</Element>
<Element>World</Element>
</Root>
'
SELECT @xml.value ('(/Root/Element)[sql:variable("@Index")][1]', 'varchar(100)')
[1]
只是告诉SQL Server您需要单个节点的一种方法。
以上是关于带有动态索引的XQuery的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Saxon 的 XQuery 中动态引用 XML 文件