Come posso ottenere Sql Server 2K8 R2 restituire questo xml senza ricorrere alla modalità di compatibilità

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

  •  27-09-2019
  •  | 
  •  

Domanda

Siamo in procinto di aggiornare il nostro server SQL per 2K8 R2 e l'uscita di una query FOR XML AUTO è cambiato.

L'interrogazione uscite colonne da tre tabelle

Il gruppo di risultati restituisce tre righe che ogni colonna è identico bar ultime due colonne della terza tabella. i risultati usati per mostrare come di seguito

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

Non show

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

Ho cercato di utilizzare per XML Path ma restituisce comunque 3 istanze separate di elemento1 piuttosto che il raggruppamento dei dati.

È stato utile?

Soluzione

Se si desidera una sottostruttura utilizzando FOR XML PATH, dovrete scrivere subquery per ogni sotto-albero. Quindi nel tuo caso si dispone di una select padre per elemento1, e una delle colonne di una sottoquery che ottiene tutto ciò che ha bisogno di essere in element2 (che a sua volta può essere anche sottoquery). Se si utilizza subquery e si desidera XML restituito da quelli, uso

  

per il percorso XML ( 'elementN'), TIPO

o che sarà sfuggire il codice XML.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top