1

スキーマが割り当てられていない SQL Server 2008 の XmlData 列で、特定のノード レベルの最初の項目を取得するにはどうすればよいですか? たとえば、私は持っています:

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

第2レベルに異なる名前のノードが複数ある場合、それらの最初のノードが返される可能性があるため、value()これは機能しないと思います(シングルトンを選択する必要があります。最初のノードが 2 番目のレベルにあるものを常に選択する方法はありますか?

4

1 に答える 1

4

Xquery.query()をチェーンして答えを見つけました.value()

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

これは最初のノードの値を返し、私のニーズに完全に対応します。

于 2009-10-05T18:18:15.640 に答える