如何在MS SQL Server 2008中使用XQuery获取属性值

Lui*_*uis 5 sql sql-server xquery sql-server-2008

我有这样的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>
Run Code Online (Sandbox Code Playgroud)

在SQL Server 2008中使用XQuery,如何在列表中按行选择Just属性NB的值(我需要所有可能的值),

例:

- 字幕 -

文字1

文字2

文字3

dev*_*uff 8

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);
Run Code Online (Sandbox Code Playgroud)

nodes表达成碎片行,而value检索列值.