从SQL XML中提取字段

时间:2018-03-08 07:43:06

标签: sql xml tsql xpath xquery

我在这个网站和互联网上搜索过,但似乎无法为这个简单的请求提供任何帮助。我只想显示与术语相关的字词,例如使用 TEST 下面的xml列将被提取。

xml列如下:

<A>
  <resources id="1" resourceType="Template" term="TEST" version="1" />
</A>

我已尝试使用以下内容,但它会返回NULLS。

select 
Res.value('(/A/term)[1]','nvarchar(50)') as 'Res'

from Con
where Res is not null

提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试这样

select 
Res.value('(/A/resources/@term)[1]','nvarchar(50)') as 'Res'

from Con
where Res is not null

term@下面的元素<resources>中的属性(需要<A>个符号)。您的xpath没有正确地反映这一点......

答案 1 :(得分:1)

试试这个

SELECT T.tm.value('@term[1]','nvarchar(50)')  as 'Res'
FROM   Con  
CROSS APPLY Res.nodes('/A/resources') as T(tm)