我正在尝试在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 *'
类型的操作数
有人可以帮帮我吗?
答案 0 :(得分:1)
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您需要单个节点的一种方法。