2017-10-24 15 views
1

SQL Server内から、私は私が欲しいSQL ServerのXMLノード値

declare @xml xml = 
'<animals> 
    <dog> 
     <petname>fred</petname> 
    </dog> 
    <cat> 
     <petname>bill</petname> 
    </cat> 
</animals>' 

select 
    n.value('petname[1]','varchar(10)') as name, 
    n.value('../(*).name()[1]','varchar(10)') as animalType -- don't know how to get this??? 
from 
    @xml.nodes('animals/*') as a(n) 

結果のXMLオブジェクトレコード内のn番目(2番目)のタグ値を取得したい:

name animalType 
----------------- 
fred dog 
bill cat 

に感謝を

答えて

1

ローカル名を試しましたか?

declare @xml xml = 
'<animals> 
    <dog> 
     <petname>fred</petname> 
    </dog> 
    <cat> 
     <petname>bill</petname> 
    </cat> 
</animals>' 

select 
n.value('petname[1]','varchar(10)') as name, 
n.value('local-name(.)','varchar(10)') as animalType 
from @xml.nodes('animals/*') as a(n) 
+0

ありがとう、ありがとう – mark

+0

@markこの回答はお役に立ちましたか?その横のチェックマークをオンにして回答を受け入れてください。 –