Aggiungi una colonna con NULL come valore per generare un nodo elemento separato per ogni colonna.
SELECT
t.col1 as 'item'
,NULL
,t.col2 as 'item'
,NULL
,t.col3 as 'item'
FROM dbo.tbl as t
FOR XML PATH('parent'), TYPE;
Risultato:
<parent>
<item>1</item>
<item>2</item>
<item>3</item>
</parent>
SQL Violino
Perché funziona?
Le colonne senza nome vengono inserite come nodi di testo. In questo caso il valore NULL viene inserito come nodo di testo tra l'item
nodi.
Se aggiungi valori effettivi invece di NULL vedrai cosa sta succedendo.
SELECT
t.col1 as 'item'
,'1'
,t.col2 as 'item'
,'2'
,t.col3 as 'item'
FROM dbo.tbl as t
FOR XML PATH('parent'), TYPE;
Risultato:
<parent>
<item>1</item>1<item>2</item>2<item>3</item></parent>
Un altro modo per specificare una colonna senza un nome consiste nell'utilizzare il carattere jolly *
come alias di colonna.
Colonne con un nome specificato come carattere jolly
Non è necessario utilizzare il carattere jolly in questo caso perché le colonne con valori NULL non hanno un nome di colonna, ma è utile quando si vogliono valori da colonne effettive ma non si desidera che il nome della colonna sia un nome di nodo.