Maison >base de données >tutoriel mysql >Comment puis-je concaténer des données texte de plusieurs lignes dans SQL Server ?

Comment puis-je concaténer des données texte de plusieurs lignes dans SQL Server ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-25 17:57:10998parcourir

How Can I Concatenate Text Data from Multiple Rows in SQL Server?

Combinaison de données texte de plusieurs lignes SQL Server : un guide complet

De nombreux utilisateurs de SQL Server doivent combiner des données texte sur plusieurs lignes en une seule chaîne. Ceci est inestimable pour la génération de rapports, la fusion de données et les calculs basés sur des chaînes.

Imaginez un tableau avec une liste de noms :

<code>Peter
Paul
Mary</code>

Le but est de créer une chaîne séparée par des virgules : Peter, Paul, Mary

Méthode 1 : pour SQL Server 2017 et versions ultérieures (STRING_AGG)

SQL Server 2017 et Azure SQL Database offrent la STRING_AGG fonction efficace :

<code class="language-sql">SELECT STRING_AGG(Name, ', ') AS ConcatenatedNames
FROM TableName;</code>

Méthode 2 : analyse XML (pour les anciennes versions de SQL Server)

Pour les versions antérieures de SQL Server, l'analyse XML fournit une solution :

<code class="language-sql">SELECT
    LEFT(
        (
            SELECT Name + ',' AS [text()]
            FROM TableName
            ORDER BY Name
            FOR XML PATH('')
        ).value('.', 'nvarchar(max)'),
        LEN((
            SELECT Name + ',' AS [text()]
            FROM TableName
            ORDER BY Name
            FOR XML PATH('')
        ).value('.', 'nvarchar(max)')) - 1
    ) AS ConcatenatedNames
FROM TableName;</code>

Méthode 3 : Utilisation de la fonction STUFF

La fonction STUFF propose une autre approche :

<code class="language-sql">SELECT
    STUFF(
        (
            SELECT ',' + Name
            FROM TableName
            ORDER BY Name
            FOR XML PATH('')
        ).value('.', 'nvarchar(max)'),
        1, 1, ''
    ) AS ConcatenatedNames
FROM TableName;</code>

Ces méthodes concatènent efficacement les données texte de plusieurs lignes dans SQL Server, simplifiant ainsi la manipulation et l'agrégation des données. Choisissez la méthode appropriée à votre version de SQL Server.

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