1

我有一个表,其中一列包含 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>

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

提前致谢

4

2 回答 2

2

看看xml 数据类型方法

select id,
       xmlfield.value('(//Issue[Level = "one"]/Descp/text())[1]', 'varchar(100)') as XMLField
from @table
于 2013-02-14T10:38:53.917 回答
1

您正在寻找的 XQuery 是

//Issue[Level = "one"]/Descp/data()
于 2013-02-14T09:57:39.007 回答