Cette requête SQL Server crée efficacement des listes de noms d'employés séparés par des virgules, organisées par service, à partir de la table EMP
. Le processus utilise intelligemment des sous-requêtes et des techniques de manipulation de chaînes.
Une sous-requête, intégrée dans la clause FOR XML PATH('')
, rassemble les noms des employés pour chaque service. Cette concaténation s'effectue sans balises XML, produisant un fragment XML contenant tous les noms d'employés d'un service donné. Ce fragment est stocké dans la variable allemp
.
Ensuite, la fonction REPLACE
remplace les espaces dans la chaîne allemp
par des virgules, la transformant en la liste souhaitée séparée par des virgules. Le résultat final, regroupé par deptno
, fournit une seule ligne par département, affichant les noms des employés séparés par des virgules.
Voici le résultat :
<code>deptno allemp 10 CLARK,KING,MILLER 20 SMITH,JONES,SCOTT,ADAMS,FORD 30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES</code>
La clause FOR XML PATH('')
, sans alias explicite, génère le fragment XML sans balises englobantes. Pour une gestion plus robuste des caractères XML spéciaux, pensez à ajouter le mot-clé TYPE
(comme indiqué dans l'annexe), garantissant un échappement correct.
Cette méthode offre une solution pratique pour générer des listes séparées par des virgules, utile pour l'exportation de données ou la génération de rapports.
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!