La synergie des fonctions FOR XML PATH et STUFF dans SQL Server
Dans SQL Server, la combinaison des fonctions FOR XML PATH
et STUFF
jouent un rôle essentiel dans l'organisation et la jointure des données. Décomposons ses mécanismes pour atteindre l'objectif souhaité :
1. Utilisez 'POUR XML PATH' pour extraire la chaîne d'élément XML
FOR XML PATH
Convertissez les résultats de la requête en éléments XML. En omettant le nom de l'élément, il génère une liste de valeurs séparées par des virgules, comme indiqué dans l'exemple :
<code class="language-sql">SELECT ',' + name FROM temp1 FOR XML PATH('')</code>
2. Utilisez STUFF pour supprimer les virgules de début
STUFF
est utilisé pour modifier une chaîne en remplaçant les caractères spécifiés. Dans cet exemple, nous supprimons la virgule de début de la chaîne XML :
<code class="language-sql">STUFF((SELECT ',' + NAME FROM temp1 FOR XML PATH('')), 1, 1, '')</code>
3. Effectuez une jointure pour générer la liste
Enfin, la liste modifiée est jointe à la table d'origine via la colonne 'id' :
<code class="language-sql">SELECT ID, abc = STUFF(( SELECT ',' + name FROM temp1 t1 WHERE t1.id = t2.id FOR XML PATH ('')) , 1, 1, '') from temp1 t2 group by id;</code>
Cette combinaison concatène efficacement les valeurs de la colonne 'Name' pour chaque 'Id', ce qui donne le résultat attendu :
<code>Id | Name ------------------- 1 | aaa,bbb,ccc,ddd,eee</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!