Для использования в SQL-запросе мне нужно получить значение определенного элемента XML. Элемент XML указан его атрибутом.SQL Server: Как получить значение элемента XML, определяющего атрибут?
Мои XML элементы выглядит следующим образом:
<translations>
<value lang="en-US">example</value>
<value lang="de-DE">Beispiel</value>
</translations>
и значение, которое я ищу бы «пример», когда я указываю Ланг быть «EN-US».
Я нашел способ получить это значение, используя функцию query(), а затем функцию value().
declare @S varchar(max)
set @S =
'<translations>
<value lang="en-US">example</value>
<value lang="de-DE">Beispiel</value>
</translations>'
declare @X xml
set @X = CAST(@S as xml)
select @X.query('/translations/value[@lang="en-US"]').value('.','varchar(max)')
Этот оператор выбора возвращает значение «пример» я ищу с помощью запроса() и значение функции(). Но есть ли еще более удобный способ использовать value() OR query()?
Спасибо заранее!
Большое спасибо! Это огромное улучшение для меня! – bert