1

現在、SQL サーバーを 2K8 R2 にアップグレード中であり、FOR XML AUTO クエリの出力が変更されています。

クエリは 3 つのテーブルから列を出力します

結果セットは、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>

For XML Path を使用しようとしましたが、データをグループ化するのではなく、element1 の 3 つの個別のインスタンスを返します。

4

1 に答える 1

1

FOR XML PATHを使用してサブツリーが必要な場合は、サブツリーごとにサブクエリを作成する必要があります。したがって、あなたの場合、element1の親selectステートメントがあり、列の1つは、element2に必要なものをすべて取得するサブクエリです(これはサブクエリでもあります)。サブクエリを使用し、それらからXMLを返したい場合は、

XML PATH('elementN')、TYPEの場合

または、XMLコードをエスケープします。

于 2010-08-09T10:18:26.720 に答える