Как получить значение атрибута с помощью XQuery в MS SQL Server 2008 - PullRequest
5 голосов
/ 02 ноября 2009

У меня есть такой XML-код:

<EXP>
  <TITLES>
    <SUBTITLE CL="AXT4" FL="1" NB="Text 1"/>
  </TITLES>
  <TITLES>
    <SUBTITLE CL="BVT6" FL="2" NB="Text 2"/>
  </TITLES>
  <TITLES>
    <SUBTITLE CL="PLO7" FL="3" NB="Text 3"/>
  </TITLES>
</EXP>

Использование XQuery в SQL Server 2008, Как я могу выбрать Просто значение атрибута NB в списке, по строкам (мне нужны все возможные значения),

Пример:

- Субтитры -

Текст 1

Текст 2

Текст 3

1 Ответ

8 голосов
/ 02 ноября 2009
DECLARE @x xml;
SET @x = N'<EXP>
  <TITLES>
    <SUBTITLE CL="AXT4" FL="1" NB="Text 1"/>
  </TITLES>
  <TITLES>
    <SUBTITLE CL="BVT6" FL="2" NB="Text 2"/>
  </TITLES>
  <TITLES>
    <SUBTITLE CL="PLO7" FL="3" NB="Text 3"/>
  </TITLES>
</EXP>
';

SELECT
    t.c.value(N'@NB', N'nvarchar(10)') AS Subtitles
FROM
    @x.nodes(N'/EXP/TITLES/SUBTITLE') t(c);

Выражение nodes разбивается на строки, а value возвращает значение столбца.

...