我只是在学习XQUERY,然后尝试完成我认为非常简单的事情。这是我的T-SQL代码:

DECLARE @XML xml
set @xml = '<resultsets><AppVersion>13.0</AppVersion></resultsets>'

-- Code below is wrong
select
ResultSets.AppVersion.query('AppVersion').value('.', 'varchar(100)') as AppVersion
from @XML.nodes('/resultsets/AppVersion') ResultSets(AppVersion)


我无法弄清楚如何查询该内部元素appversion。我没有收到任何错误,但是我无法在appversion内部元素中返回该13.0。有人可以帮忙吗?

最佳答案

您的AppVersion太多了。这将返回您的13.0

DECLARE @XML xml
set @xml = '<resultsets><AppVersion>13.0</AppVersion></resultsets>'

-- Code below is right
select
ResultSets.AppVersion.value('.', 'varchar(100)') as AppVersion
from @XML.nodes('/resultsets/AppVersion') ResultSets(AppVersion)


您的nodes方法已经下到AppVersion节点,因此从那里不再需要query,只需value

关于sql-server - T-SQL,XQuery无效列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8590183/

10-10 06:39