带有动态索引的XQuery

问题描述 投票:-2回答:1

我试图在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 *'类型的操作数

有人能帮帮我吗?

sql sql-server dynamic xquery
1个回答
1
投票

看看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您需要单个节点的一种方法。

© www.soinside.com 2019 - 2024. All rights reserved.