Как декодировать & amp; и т. д., используя XQuery / SQL?

Использование Microsoft SQL Server …

declare @x xml set @x = '<Example>&lt;You &amp; Me&gt;</Example>' select cast(@x.query('/Example/text()') as nvarchar(50)) 

Результатом является «& lt; You & amp; Me & gt;» а не «<You & Me>».

Как я могу заставить SQL читать XML таким образом, что '& lt;', '& amp;' и '& gt;' декодируются?

Используйте value() вместо query() .

 declare @x xml set @x = '<Example>&lt;You &amp; Me&gt;</Example>' select @x.value('(/Example)[1]', 'nvarchar(50)') 

SQL-Fiddle

  • SQL Server 2014 - XQuery - получить разделенный запятой список
  • MIN дескриптов XML типа даты
  • Какие другие преподаватели учат курсы, которые учат Джон Каллен.SQL
  • SQL Server: как получить значение элемента XML, определяющего атрибут?
  • Получить родительский узел xml на основе значения внутреннего узла в SQL Server
  • XQuery SUM после округления значения
  • XQuery добавление или замена атрибута в одной команде обновления SQL
  • XQuery для объединения значений узлов с логикой Group By
  • Выражения сопоставления XQuery в столбце SQL
  • Автозапуск SQL в зависимости от значения столбца
  • Невозможно запустить XMLQuery в выражении XML
  • Давайте будем гением компьютера.