在SQL Server 2008的XmlData列中没有为其分配架构,如何在特定节点级别提取第一项?例如,我有:
SELECT
XmlData.value('//*/*[1]','NVARCHAR(6)')
FROM table
where XmlData.Exist('//*/*[1]') = 1
我认为这不起作用,因为如果在第二级有多个节点具有不同的名称,则可以返回每个节点中的第一个(并且value()
要求选择单个。
由于我不知道任何节点的名称是什么,有没有办法总是选择第一个节点在第二级的任何东西?
答案 0 :(得分:4)
我通过链接Xquery .query()
和.value()
XMLDATA.query('//*/*[1]').value('.[1]','NVARCHAR(6)')
这将返回第一个节点的值,并且完全符合我的需要。