Wie kann ich SQL Server 2K8 R2 erhalten diese xml zurückzukehren, ohne zu Kompatibilitätsmodus zurückgreifen

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

  •  27-09-2019
  •  | 
  •  

Frage

Wir sind dabei, unsere SQL Server 2K8 R2 aktualisieren und die Ausgabe einer FOR XML AUTO Abfrage geändert hat.

Die Abfrage gibt Spalten aus drei Tabellen

Die resultset gibt drei Reihen, die jede Spalte die letzten zwei Spalten aus der dritten Tabelle identisch bar sind. die wie unten

zeigen, verwendet, um Ergebnisse
<element1 myval="Test">
    <element2 myotherval="atest">
         <element3 a="a"/>
         <element3 a="b"/>
         <element3 a="c" />
    </element2>
</element1>

es nicht zeigt

    <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>

Ich habe versucht, für XML-Pfad zu verwenden, aber es gibt noch drei separate Instanzen von element1 anstatt die Daten zu gruppieren.

War es hilfreich?

Lösung

Wenn Sie einen Teilbaum mit FOR XML PATH möchten, müssen Sie Unterabfragen für jeden Unterbaum schreiben. Also in Ihrem Fall haben Sie eine übergeordnete select-Anweisung für element1, und eine der Spalten ist eine Unterabfrage, die bekommt, was in element2 sein muss (was wiederum auch Subqueries sein). Wenn Sie Unterabfragen und Sie XML von denen zurückgegeben werden sollen, verwenden Sie

  

FOR XML PATH ( 'elementN'), TYPE

oder es wird den XML-Code entkommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top