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
Libérer: 2025-01-25 17:57:10
original
991 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

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