В столбце XmlData в SQL Server 2008, которому не назначена схема, как я могу получить первый элемент на определенном уровне узла? Например, у меня есть:
SELECT
XmlData.value('//*/*[1]','NVARCHAR(6)')
FROM table
where XmlData.Exist('//*/*[1]') = 1
Я предполагаю, что это не работает, потому что, если на 2-м уровне есть несколько узлов с разными именами, первый из них может быть возвращен (а value()
требует, чтобы был выбран одиночный узел.
Поскольку я не знаю, какими будут имена любых узлов, есть ли способ всегда выбирать, какой первый узел находится на 2-м уровне?