Maison > base de données > tutoriel mysql > Comment concaténer plusieurs lignes en une seule chaîne séparée par des virgules dans SQL Server ?

Comment concaténer plusieurs lignes en une seule chaîne séparée par des virgules dans SQL Server ?

Mary-Kate Olsen
Libérer: 2025-01-07 21:12:41
original
257 Les gens l'ont consulté

How to Concatenate Multiple Rows into a Single Comma-Separated String in SQL Server?

Combiner efficacement plusieurs lignes en une seule chaîne séparée par des virgules dans SQL Server

SQL Server nécessite souvent de regrouper les données de plusieurs lignes en une seule chaîne séparée par des virgules, en particulier lors du regroupement des résultats. Il s’agit d’une tâche courante pour le reporting et la présentation des données. Une méthode puissante pour y parvenir utilise la construction FOR XML PATH.

Examinons un tableau avec des colonnes « ID » et « Valeur » :

ID Value
1 a
1 b
2 c

La requête SQL suivante concatène efficacement les Value entrées pour chaque ID unique dans une chaîne séparée par des virgules :

<code class="language-sql">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;</code>
Copier après la connexion

Cette requête utilise une sous-requête avec FOR XML PATH('') pour concaténer les valeurs. La méthode .value('.', 'NVARCHAR(MAX)') convertit le résultat XML en chaîne. STUFF supprime la virgule et l'espace de début.

Le résultat sera :

ID Values
1 a, b
2 c

Cette approche fournit un moyen propre et efficace de générer des valeurs agrégées séparées par des virgules dans SQL Server, améliorant ainsi la lisibilité et la convivialité de vos donné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!

source:php.cn
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