Maison >base de données >tutoriel mysql >Comment concaténer des lignes avec un délimiteur virgule dans SQL Server ?

Comment concaténer des lignes avec un délimiteur virgule dans SQL Server ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-16 23:32:10513parcourir

How to Concatenate Rows with a Comma Delimiter in SQL Server?

Joindre des lignes à l'aide d'un délimiteur de virgule dans SQL Server

Cet article explique comment fusionner plusieurs lignes de données dans une chaîne séparée par des virgules dans SQL Server. Dans MS SQL Server, cela peut être réalisé efficacement en utilisant une combinaison de fonctions STUFF et FOR XML.

Voici un exemple de tableau (@T) :

<code class="language-sql">DECLARE @T AS TABLE
(
    Name varchar(10)
)

INSERT INTO @T VALUES
('John'),
('Vicky'),
('Sham'),
('Anjli'),
('Manish')</code>

Pour concaténer les noms dans une chaîne séparée par des virgules, exécutez la requête suivante :

<code class="language-sql">SELECT STUFF((
    SELECT ',' + Name
    FROM @T
    FOR XML PATH('')
), 1, 1, '') As [output];</code>

Cette requête utilise FOR XML pour générer une hiérarchie XML de noms, puis utilise la fonction STUFF pour construire la chaîne finale. Le résultat sera :

<code>output
John,Vicky,Sham,Anjli,Manish</code>

Cette méthode concatène efficacement plusieurs lignes de données en une seule chaîne, ce qui la rend idéale pour des tâches telles que la génération de listes séparées par des virgules ou l'exportation de données dans un format spécifique.

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:
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