Maison > base de données > tutoriel mysql > Comment agréger des lignes dans des listes séparées par des virgules dans Oracle ?

Comment agréger des lignes dans des listes séparées par des virgules dans Oracle ?

Linda Hamilton
Libérer: 2025-01-19 17:57:10
original
525 Les gens l'ont consulté

How to Aggregate Rows into Comma-Separated Lists in Oracle?

Oracle : combiner des lignes dans des listes séparées par des virgules

Fréquemment, la manipulation des données nécessite l'agrégation de plusieurs lignes en une seule chaîne délimitée par des virgules. Oracle propose plusieurs méthodes pour y parvenir :

Méthode 1 : LISTAGG (Oracle 11.2 et versions ultérieures)

La fonction LISTAGG (disponible à partir d'Oracle 11.2) concatène efficacement les lignes à l'aide d'un délimiteur spécifié. Sa syntaxe est :

LISTAGG(expression, delimiter [, separator]) WITHIN GROUP (ORDER BY order_expression)
Copier après la connexion

Exemple : Générer une liste de noms de pays séparés par des virgules à partir d'une table countries :

SELECT LISTAGG(country_name, ', ') WITHIN GROUP (ORDER BY country_name)
FROM countries;
Copier après la connexion

Méthode 2 : WM_CONCAT (versions Oracle antérieures à 11.2)

Pour les anciennes bases de données Oracle (avant 11.2), la fonction WM_CONCAT offre une fonctionnalité similaire :

SELECT WM_CONCAT(country_name)
FROM countries;
Copier après la connexion

Méthode 3 : Fonction PL/SQL personnalisée

Si ni LISTAGG ni WM_CONCAT ne suffisent, une fonction PL/SQL personnalisée offre une solution flexible. Cela permet une logique de concaténation personnalisée, comme le démontre l'exemple fourni utilisant des boucles et la concaténation de chaînes.

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