Maison >base de données >tutoriel mysql >Comment concaténer des champs de plusieurs enregistrements dans T-SQL à l'aide de FOR XML PATH() ?

Comment concaténer des champs de plusieurs enregistrements dans T-SQL à l'aide de FOR XML PATH() ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-15 07:58:46242parcourir

How to Concatenate Fields from Multiple Records in T-SQL Using FOR XML PATH()?

Utilisez FOR XML PATH() pour joindre les champs de plusieurs enregistrements dans T-SQL

Dans votre scénario spécifique, où vous avez plusieurs tables avec une relation plusieurs-à-plusieurs, vous pouvez utiliser une sous-requête et la fonction FOR XML PATH() pour joindre les champs requis. Voici comment obtenir le résultat souhaité :

<code class="language-sql">SELECT  *,
        ( 
            SELECT  u.FName + ', '
            FROM    @Users u INNER JOIN 
                    @Reviewers rs ON u.UserID = rs.UserID
            WHERE   rs.ReviewID = r.ReviewID
            FOR XML PATH('')
        ) AS Users
FROM    @Reviews r</code>

Cette requête rejoint d'abord les tables @Reviews, @Reviewers et @Users pour créer un ensemble de données unifié. Il utilise ensuite une sous-requête pour sélectionner la colonne FName de @Users pour chaque ReviewID associé. La fonction FOR XML PATH() concatène ces valeurs FName dans une chaîne séparée par des virgules.

Enfin, la chaîne de connexion générée est affectée à la colonne "Utilisateurs" dans l'instruction SELECT principale. Le résultat ressemble à ceci :

<code>ReviewID    ReviewDate          Users
1           2009-01-12          Bob, Joe, Frank
2           2009-01-25          Sue, Alice</code>

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