T-SQL,XQuery无效列

时间:2011-12-21 12:58:13

标签: sql-server tsql xquery-sql

我只是在学习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。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

你有一个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

答案 1 :(得分:2)

如果您只想要一行,则无需使用nodes

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

select @XML.value('(/resultsets/AppVersion)[1]', 'varchar(100)') as AppVersion