带有动态索引的XQuery

时间:2018-03-05 16:10:36

标签: sql sql-server dynamic 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 *'

类型的操作数

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分: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您需要单个节点的一种方法。