2009-11-02 191 views
5

我有一个这样的XML:如何使用XQuery获得MS SQL Server中的属性值2008

<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

回答

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检索列值。

相关问题