3

私は 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 を返すことができません。誰か助けてくれませんか?

4

2 に答える 2

2

結果として1行だけが必要な場合は、を使用する必要はありませんnodes

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

select @XML.value('(/resultsets/AppVersion)[1]', 'varchar(100)') as AppVersion
于 2011-12-21T13:22:26.930 に答える
2

1 つ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そこからさらに.queryvalue

于 2011-12-21T13:02:57.287 に答える