La combinaison astucieuse de STUFF et FOR XML PATH dans SQL Server
Dans SQL Server, la combinaison des fonctions STUFF et FOR XML PATH peut connecter et traiter les données efficacement. Voyons comment ces deux fonctions fonctionnent ensemble pour obtenir le résultat souhaité.
Le rôle de FOR XML PATH
FOR XML PATH Convertit les résultats de la requête en une chaîne d'éléments XML. L'ajout d'une chaîne vide comme argument ('') à FOR XML PATH produit une liste de valeurs séparées par des virgules. Par exemple :
<code class="language-sql">SELECT ',' + name FROM temp1 FOR XML PATH ('')</code>
Le résultat est :
<code>,aaa,bbb,ccc,ddd,eee</code>
Le rôle de STUFF
La fonction STUFF permet d'insérer ou de remplacer des caractères dans une chaîne. En spécifiant les paramètres de position de départ et de longueur sur 1, vous supprimez effectivement le premier caractère de la chaîne :
<code class="language-sql">STUFF( (SELECT ',' + NAME FROM temp1 FOR XML PATH('') ), 1, 1, '' )</code>
Cela supprimera la virgule au début de la liste de noms :
<code>aaa,bbb,ccc,ddd,eee</code>
Connexion basée sur l'ID
Enfin, utilisez Group By pour rejoindre la liste modifiée avec la colonne Id pour agréger et renvoyer le résultat souhaité :
<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>
Ce code explique succinctement comment STUFF et FOR XML PATH fonctionnent ensemble dans SQL Server pour produire le résultat souhaité.
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!