Получить первое значение с помощью Xquery, используя подстановочный знак - PullRequest
1 голос
/ 05 октября 2009

В столбце XmlData в SQL Server 2008, которому не назначена схема, как я могу получить первый элемент на определенном уровне узла? Например, у меня есть:

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

Я предполагаю, что это не работает, потому что, если на 2-м уровне есть несколько узлов с разными именами, первый из них может быть возвращен (а value() требует, чтобы был выбран одиночный узел. Поскольку я не знаю, какими будут имена любых узлов, есть ли способ всегда выбирать, какой первый узел находится на 2-м уровне?

1 Ответ

4 голосов
/ 05 октября 2009

Я нашел ответ по цепочке Xquery .query() и .value()

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

Возвращает значение первого узла и отлично подходит для моих нужд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...