Maison > base de données > tutoriel mysql > Comment agréger des valeurs séparées par des virgules à l'aide de la clause GROUP BY de SQL Server ?

Comment agréger des valeurs séparées par des virgules à l'aide de la clause GROUP BY de SQL Server ?

Linda Hamilton
Libérer: 2025-01-10 17:52:43
original
724 Les gens l'ont consulté

How to Aggregate Comma-Separated Values Using SQL Server's GROUP BY Clause?

Utilisation de GROUP BY de SQL Server pour concaténer des valeurs séparées par des virgules

La clause GROUP BY de SQL Server est inestimable pour agréger des données en fonction d'attributs partagés. Toutefois, la combinaison de plusieurs valeurs en une seule chaîne séparée par des virgules nécessite une approche légèrement plus avancée. C'est là que la fonction STUFF s'avère utile.

Voici comment réaliser une agrégation séparée par des virgules en utilisant GROUP BY et STUFF :

SELECT ReportId, Email = 
    STUFF((SELECT ', ' + Email
           FROM your_table b 
           WHERE b.ReportId = a.ReportId 
          FOR XML PATH('')), 1, 2, '')
FROM your_table a
GROUP BY ReportId
Copier après la connexion

Disséquons cette requête :

  • SELECT externe : Ceci récupère le ReportId et la chaîne Email agrégée.
  • STUFF fonction : Cela concatène intelligemment les e-mails, en insérant une virgule et un espace entre chacun.
  • Inner SELECT : Cette sous-requête récupère tous les e-mails associés à un ReportId spécifique.
  • FOR XML PATH('') : Ceci convertit le jeu de résultats de la requête interne en une chaîne XML, fournissant un format pratique pour la concaténation.
  • Clause
  • WHERE : Cela garantit que la requête interne sélectionne uniquement les e-mails correspondant au ReportId de la requête externe.

L'application de cette requête à des exemples de données produirait le résultat suivant :

ReportId Email
1 [email protected], [email protected]
2 [email protected]
3 [email protected], [email protected]

Cette technique génère efficacement des listes séparées par des virgules, simplifiant ainsi la gestion des données agrégées.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal