どのように私は、SQL Serverの2K8 R2は、互換モードに頼ることなく、このXMLを返すように得ることができます

StackOverflow https://stackoverflow.com/questions/3439007

  •  27-09-2019
  •  | 
  •  

質問

私たちは2K8 R2およびFOR XML AUTOクエリの出力に私たちのSQLサーバーをアップグレードする過程で変更されたされます。

の3つのテーブルからクエリの出力列

各列が同じバーである

結果セット戻り三列最後の2列第3テーブルから。以下のように表示するために使用した結果、

<element1 myval="Test">
    <element2 myotherval="atest">
         <element3 a="a"/>
         <element3 a="b"/>
         <element3 a="c" />
    </element2>
</element1>

それはないショー

    <element1 myval="Test">
        <element2 myotherval="atest">
             <element3 a="a"/>
         </element2>
    </element1>
    <element1 myval="Test">
        <element2 myotherval="atest">
             <element3 a="B"/>
         </element2>
    </element1>
    <element1 myval="Test">
        <element2 myotherval="atest">
             <element3 a="C"/>
         </element2>
    </element1>

私はXMLパスの使用しようとしているが、それはまだかなりのデータをグループ化するよりも、要素1の3つの別々のインスタンスを返します。

役に立ちましたか?

解決

あなたはXMLパスの使用してサブツリーをしたい場合は、

は、各サブツリーのサブクエリを記述する必要があります。だからあなたの場合には、あなたは要素1の親select文を持っている、と列の一つが(順番にもサブクエリとすることができる)要素2であることが必要であるものは何でもなるサブクエリです。あなたはサブクエリを使用していて、それらから返されたXMLを使用する場合は、使用

  

のXML PATH( 'elementN')、FOR TYPE

またはそれはXMLコードをエスケープます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top