使用通配符使用Xquery检索第一个值

时间:2009-10-05 18:07:15

标签: tsql xquery wildcard

在SQL Server 2008的XmlData列中没有为其分配架构,如何在特定节点级别提取第一项?例如,我有:

SELECT 
XmlData.value('//*/*[1]','NVARCHAR(6)')
FROM table
where XmlData.Exist('//*/*[1]') = 1

我认为这不起作用,因为如果在第二级有多个节点具有不同的名称,则可以返回每个节点中的第一个(并且value()要求选择单个。 由于我不知道任何节点的名称是什么,有没有办法总是选择第一个节点在第二级的任何东西?

1 个答案:

答案 0 :(得分:4)

我通过链接Xquery .query().value()

找到答案
XMLDATA.query('//*/*[1]').value('.[1]','NVARCHAR(6)')

这将返回第一个节点的值,并且完全符合我的需要。