18
Testのfoo属性(ルート要素)の値をvarcharとして取得したいと考えています。 上記のクエリを実行すると、次のエラーが表示されます。
ジョン・サンダースは、ほぼ右
declare @Data XML
set @Data = '<Test foo="bar"><Otherstuff baz="belch" /></Test>'
select @Data.value('(/Test/@foo)[1]','varchar(20)') as Foo
:-)それを持っている私の目標は、の線に沿って何かだろう
これは私のために働きます(SQL Server 2005および2008)
Marc
あなたはルート要素を知らない場合:
select @Data.value('(/*/@foo)[1]','varchar(20)') as Foo
あなたはルート要素が何であるか何を知っていない場合は...?この場合は「テスト」であることがわかりますが、別のフィールドの値に応じてXMLが異なるXMLフィールドがあります。だからまたは ...デフォルトのルート要素名を使用できますか???? –
Ads
@Adsはワイルドカードを使用します(例: '//Elements/Element [@foo]' – StuartLC
括弧で囲んでください。シース;私は推測していないでしょう。 TSQLのXMLクエリはうまくいくが、構文はあまりにも難しい。 – dudeNumber4