Techniques SQL pour combiner plusieurs lignes en un seul champ délimité par des virgules
L'agrégation de plusieurs lignes de données en une seule colonne, séparées par des virgules, est une exigence fréquente dans la manipulation de données. Ce guide montre comment réaliser cette concaténation à l'aide de SQL, en se concentrant sur Microsoft SQL Server 2005 et versions ultérieures.
Voici une solution SQL Server :
<code class="language-sql">SELECT t.TicketID, STUFF(ISNULL((SELECT ', ' + x.Person FROM @Tickets x WHERE x.TicketID = t.TicketID GROUP BY x.Person FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '') AS ConcatenatedPersons FROM @Tickets t GROUP BY t.TicketID</code>
Cette approche utilise la fonction STUFF
pour supprimer efficacement une virgule de début de la chaîne concaténée. La requête imbriquée exploite FOR XML PATH
pour créer une liste séparée par des virgules à partir des valeurs Person
individuelles associées à chaque TicketID
. La fonction ISNULL
gère les cas où aucune personne n'est associée à un identifiant de ticket donné. Le résultat est une seule colonne (ConcatenatedPersons
) contenant la liste des personnes séparées par des virgules pour chaque ticket. Cette méthode fournit un moyen propre et efficace d’obtenir la concaténation souhaitée dans SQL Server. Adaptez cette technique à vos noms de tables et de colonnes spécifiques pour des résultats optimaux.
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!