Maison > base de données > tutoriel mysql > Comment puis-je agréger des chaînes dans SQL Server comme LISTAGG d'Oracle ?

Comment puis-je agréger des chaînes dans SQL Server comme LISTAGG d'Oracle ?

Patricia Arquette
Libérer: 2025-01-22 13:01:15
original
193 Les gens l'ont consulté

How Can I Aggregate Strings in SQL Server Like Oracle's LISTAGG?

Agrégation de listes dans SQL Server

SQL Server fournit un ensemble puissant de fonctions pour l'agrégation de données, y compris la possibilité de concaténer les valeurs de plusieurs lignes en une seule chaîne séparée par des virgules. La maîtrise de cette méthode d'agrégation est essentielle pour diverses tâches d'agrégation et de présentation de données.

Pour obtenir les mêmes fonctionnalités que la fonction LISTAGG d'Oracle dans SQL Server, vous pouvez utiliser la fonction STRING_AGG. Introduite dans SQL Server 2017, cette fonction permet de concaténer des chaînes au sein d'un groupe.

Exemple

Considérez l'ensemble de données suivant :

字段 A 字段 B
1 A
1 B
2 A

Requête :

SELECT FieldA,
       STRING_AGG(FieldB, ',') WITHIN GROUP (ORDER BY FieldB) AS FieldBs
FROM TableName
GROUP BY FieldA
ORDER BY FieldA;
Copier après la connexion

Résultat :

字段 A FieldBs
1 A, B
2 A

La fonction STRING_AGG avec la clause WITHIN GROUP garantit que les valeurs sont concaténées au sein de chaque groupe regroupé par FieldA. La clause ORDER BY dans un agrégat spécifie l'ordre dans lequel les valeurs doivent être répertoriées.

Pour les versions de SQL Server antérieures à 2017, vous pouvez utiliser une combinaison de fonctions CTE (expression de table commune) et STUFF pour obtenir le même résultat. Cependant, par souci de simplicité et de compatibilité avec les versions plus récentes, la fonction STRING_AGG est la solution recommandée.

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