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

5

我有一个像这样的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>

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

例如:

-- 副标题 --

文本1

文本2

文本3

1个回答

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);

nodes表达式将被剖分成行,value检索列值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接