Il n'y a pas vraiment de technique à apprendre ici. C'est juste une astuce mignonne pour concaténer plusieurs lignes de données en une seule chaîne. Il s'agit plus d'une utilisation originale d'une fonctionnalité que d'une utilisation prévue du XML
fonction de formatage.
SELECT ',' + ColumnName ... FOR XML PATH('')
génère un ensemble de valeurs séparées par des virgules, basé sur la combinaison de plusieurs lignes de données à partir de ColumnName
colonne. Il produira une valeur comme ,abc,def,ghi,jkl
.
STUFF(...,1,1,'')
Est ensuite utilisé pour supprimer la virgule de début générée par l'astuce précédente, voir STUFF
pour plus de détails sur ses paramètres.
(Étrangement, beaucoup de gens ont tendance à se référer à cette méthode de génération d'un ensemble de valeurs séparées par des virgules comme "la méthode STUFF" malgré le STUFF
n'étant responsable que d'un dernier ajustement)