Maison > base de données > tutoriel mysql > Comment concaténer plusieurs lignes en une seule colonne dans T-SQL ?

Comment concaténer plusieurs lignes en une seule colonne dans T-SQL ?

DDD
Libérer: 2025-01-12 09:07:46
original
979 Les gens l'ont consulté

How to Concatenate Multiple Rows into a Single Column in T-SQL?

Renvoyer plusieurs valeurs dans une seule colonne à l'aide de T-SQL

Lorsque vous traitez des tableaux contenant plusieurs valeurs pour un seul attribut, ces valeurs doivent être récupérées et fusionnées en une seule colonne pour une analyse efficace des données. Cet article plonge dans une solution qui utilise une combinaison de fonctions et d'opérations sur les chaînes pour renvoyer plusieurs valeurs dans une colonne.

Exemple :

Considérez le tableau "UserAliases", avec plusieurs alias par utilisateur :

<code>UserId/Alias  
1/MrX  
1/MrY  
1/MrA  
2/Abc  
2/Xyz</code>
Copier après la connexion

Le but est de convertir les données au format suivant :

<code>UserId/Alias  
1/ MrX, MrY, MrA  
2/ Abc, Xyz</code>
Copier après la connexion

Solution :

Pour cela nous utilisons la fonction personnalisée "GetAliasesById" qui utilise la fonction "COALESCE". Cette fonction initialise une variable "@output" et y ajoute de manière itérative des valeurs d'alias, séparées par des virgules. Voici le code de fonction :

<code class="language-sql">CREATE FUNCTION [dbo].[GetAliasesById]
(
    @userID int
)
RETURNS varchar(max)
AS
BEGIN
    declare @output varchar(max)
    select @output = COALESCE(@output + ', ', '') + alias
    from UserAliases
    where userid = @userID

    return @output
END</code>
Copier après la connexion

Enfin, nous récupérons les données et appliquons la fonction "GetAliasesById" pour fusionner les alias :

<code class="language-sql">SELECT UserID, dbo.GetAliasesByID(UserID)
FROM UserAliases
GROUP BY UserID</code>
Copier après la connexion

Cette requête renvoie le résultat souhaité avec plusieurs alias pour chaque utilisateur combinés en une seule colonne. La fonction "COALESCE" gère efficacement les valeurs nulles, garantissant une sortie de chaîne valide.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal