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>

(必要: レベル 1 の説明は?)

前もって感謝します

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 に答える