Xquery返回具有受限节点的行

时间:2013-02-14 09:16:15

标签: sql xml sql-server-2008 xpath xquery

我有一个表,其中列包含XML数据。现在我想要检查具有节点限制的那些xml数据。请参阅以下示例以获取有关我的方案的更多说明,

declare @table table (id int, xmlfield xml) insert into @table select 1,'<Root xmlns="">
    <Sample>
    <Issue>
      <Level>one</Level>
      <Descp>First Example</Descp>
    </Issue>
    <Issue>
      <Level>two</Level>
      <Descp>Second Example</Descp>
    </Issue>
    </Sample> </Root>'

      select * from @table

现在我需要以下结果集

Id  XMLfield

1   first example

即,对于所选级别,我需要对其进行解密。更明确地说,该节点应限制为<level>one</level>

(需要:第一级的描述是什么?)

提前致谢

2 个答案:

答案 0 :(得分:2)

查看xml Data Type Methods

select id,
       xmlfield.value('(//Issue[Level = "one"]/Descp/text())[1]', 'varchar(100)') as XMLField
from @table

答案 1 :(得分:1)

您正在寻找的XQuery是

//Issue[Level = "one"]/Descp/data()