我目前在 SQL Server 中使用 Xquery 从 XML 中提取一些信息。
我遇到了麻烦,因为我必须将一些动态内容放在一个变量上,但它不起作用。
当我选择这个:
P.value('ListOrderItem[1]/OrderItem[1]/Item[sql:variable("@I")]/Seller[1]','VARCHAR(64)')
P
是我的路径,它很好,因为它可以与其他项目一起使用,但我必须在这个项目上做一个循环(在一个顺序中,你可以有很多项目......),所以这就是为什么我想把@I
然后做一个循环这个变量。
PS:不要说把[1]
变量放在后面,否则每次都会选择第一项。
编辑:“不起作用”是指当我输入“”时它只向我发送第一项[1]
和错误消息,即[sql:variable("@I")]
“value()”需要一个单例(或空序列),找到的操作数输入'xdt:untypedAtomic *"
当然,我试过了,'+@I'
但它仍然不起作用..
我的 XML 示例:
<ListOrderItem>
<OrderItem>
<Item>
...
</Item>
<Item>
...
</Item>
</OrderItem>
</ListOrderItem>
最终编辑:我终于解决了这篇文章对我帮助很大的问题,很抱歉当时发帖。
在 SQL Server 中使用 value() 从 xml 列获取多条记录
谢谢。