2009-10-05 73 views
1

在SQL Server 2008中沒有爲其分配架構的XmlData列中,如何在特定節點級別抽取第一個項目?例如,我有:使用通配符檢索Xquery的第一個值

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

我認爲這不工作,因爲如果有與在2級不同名稱的多個節點,首先每個那些的可以返回(和value()需要一個單被選中。 因爲我不知道任何節點的名稱是什麼,有沒有辦法始終選擇任何的第一個節點處於第2級別?

回答

4

我通過鏈接的Xquery .query().value()找到了答案

XMLDATA.query('//*/*[1]').value('.[1]','NVARCHAR(6)') 

這將返回第一個節點的值,並完美滿足我的需求。