Maison > base de données > tutoriel mysql > Comment regrouper des données et concaténer des valeurs avec des séparateurs par virgules en SQL ?

Comment regrouper des données et concaténer des valeurs avec des séparateurs par virgules en SQL ?

Susan Sarandon
Libérer: 2025-01-07 19:56:41
original
814 Les gens l'ont consulté

How to Group Data and Concatenate Values with Comma Separators in SQL?

Regroupement et concaténation SQL avec séparateurs par virgules

Ce guide montre comment écrire une requête SQL qui regroupe les données et concatène les valeurs agrégées à l'aide de séparateurs par virgules. Imaginez une table comme celle-ci :

<code>| ID | Value |
|-----|-------|
| 1   | a     |
| 1   | b     |
| 2   | c     |</code>
Copier après la connexion

L'objectif est de générer un ensemble de résultats dans lequel les valeurs du même identifiant sont combinées en une seule chaîne séparée par des virgules :

<code>| ID | Value |
|-----|-------|
| 1   | a,b   |
| 2   | c     |</code>
Copier après la connexion

Solution utilisant FOR XML PATH :

La construction FOR XML PATH fournit un moyen efficace d'y parvenir :

SELECT
    ID,
    STUFF((SELECT ', ' + Value
           FROM YourTable t2 WHERE t1.ID = t2.ID
           FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values
FROM YourTable t1
GROUP BY ID;
Copier après la connexion

La fonction STUFF supprime la virgule et l'espace de début ajoutés par l'instruction SELECT. Cette approche est généralement privilégiée pour ses performances et sa lisibilité.

Lectures complémentaires :

Pour des scénarios plus avancés et des techniques alternatives, explorez ces ressources :

  • Stack Overflow : Un fil de discussion Stack Overflow pertinent discutant de défis de concaténation similaires (recherchez « Groupe SQL par concaténation »).
  • Documentation SQL Server : Consultez la documentation officielle de Microsoft pour des informations détaillées sur FOR XML PATH et les fonctions associées.

Cette réponse révisée améliore la clarté, fournit une explication plus concise et propose des liens utiles pour un apprentissage ultérieur. L'image reste dans sa position d'origine.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal