Maison > base de données > tutoriel mysql > Comment concaténer le texte de plusieurs lignes SQL Server en une seule chaîne?

Comment concaténer le texte de plusieurs lignes SQL Server en une seule chaîne?

Mary-Kate Olsen
Libérer: 2025-01-25 18:02:10
original
914 Les gens l'ont consulté

How to Concatenate Text from Multiple SQL Server Rows into a Single String?

SQL Server Connexion de texte multiplié: Méthode du chemin XML

Merger les données de texte multi-lignes en une seule chaîne est courante. Par exemple, il y a un tableau contenant le nom:

Le but est de le convertir en une corde unifiée: "Pierre, Paul, Mary".
<code>Peter
Paul
Mary</code>
Copier après la connexion

Pour les utilisateurs de SQL Server 2017 ou Azure, vous pouvez considérer la solution fournie par Mathieu Renda. Cependant, pour les premières versions (comme SQL 2005), la méthode du chemin XML fournit une méthode efficace pour cette tâche de connexion.

Ce qui suit est un exemple de tableau appelé étudiants:

La sortie attendue est:
SubjectID StudentName
1 Mary
1 John
1 Sam
2 Alaina
2 Edward

Pour y parvenir, veuillez utiliser le code T-SQL suivant:
SubjectID StudentName
1 Mary, John, Sam
2 Alaina, Edward

Cette requête récupère la valeur du nom d'étudiant de subjectid et connecté, et ometta la virgule dans la chaîne de résultats.
<code class="language-sql">SELECT Main.SubjectID,
       LEFT(Main.Students,Len(Main.Students)-1) As "Students"
FROM
    (
        SELECT ST2.SubjectID,
            (
                SELECT ST1.StudentName + ',' AS [text()]
                FROM dbo.Students ST1
                WHERE ST1.SubjectID = ST2.SubjectID
                ORDER BY ST1.SubjectID
                FOR XML PATH (''), TYPE
            ).value('text()[1]','nvarchar(max)') [Students]
        FROM dbo.Students ST2
        GROUP BY ST2.SubjectID
    ) [Main]</code>
Copier après la connexion

ou, vous pouvez utiliser une méthode plus concise pour connecter les virgules au début et utiliser des choses pour supprimer la première virgule:

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