Maison > base de données > tutoriel mysql > Comment concaténer des valeurs au sein de groupes dans SQL Server ?

Comment concaténer des valeurs au sein de groupes dans SQL Server ?

Mary-Kate Olsen
Libérer: 2025-01-09 12:36:48
original
247 Les gens l'ont consulté

How to Concatenate Values Within Groups in SQL Server?

Rejoindre des groupes dans SQL Server

Pour joindre des valeurs au sein de groupes dans SQL Server 2005, envisagez d'utiliser des fonctions d'agrégation définies par l'utilisateur.

Solution :

  1. Créer une fonction d'agrégation définie par l'utilisateur (UDAF) :

     CREATE AGGREGATE [dbo].[ConcatValues] (@str VARCHAR(MAX))
     RETURNS VARCHAR(MAX)
     AS
     BEGIN
         DECLARE @result VARCHAR(MAX) = '',
                 @delim VARCHAR(2) = '';
         WHILE @str IS NOT NULL
         BEGIN
             SET @result = @result + @delim + @str;
             SET @delim = ',';
             SET @str = NEXT VALUE;
         END;
         RETURN @result;
     END;
    Copier après la connexion
  2. Utiliser UDAF dans les requêtes :

     SELECT Id, [dbo].[ConcatValues](Value) AS ConcatenatedValues
     FROM YourTable
     GROUP BY Id;
    Copier après la connexion

Résultat :

Id ConcatenatedValues
1 'A,B'
2 'C'

Notez que cette solution utilise une boucle WHILE pour parcourir les valeurs d'entrée et les concaténer en utilisant des virgules comme séparateurs. Ceci est différent de la boucle FOR dans l'exemple d'origine, mais implémente la même fonctionnalité et est plus courante dans SQL Server. NEXT VALUE est utilisé pour obtenir la prochaine valeur d'entrée de la fonction d'agrégation. YourTable doit être remplacé par le nom réel de votre table.

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 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