Maison >base de données >tutoriel mysql >Comment puis-je combiner plusieurs lignes dans une liste séparée par des virgules dans Oracle ?

Comment puis-je combiner plusieurs lignes dans une liste séparée par des virgules dans Oracle ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-19 17:47:09624parcourir

How Can I Combine Multiple Rows into a Comma-Separated List in Oracle?

Fusionner plusieurs lignes dans une liste séparée par des virgules dans la base de données Oracle

Lorsque vous travaillez avec des données dans une base de données Oracle, il est parfois nécessaire de combiner plusieurs lignes de données en une seule liste de valeurs séparées par des virgules (CSV). Vous pouvez utiliser des fonctions intégrées telles que WM_CONCAT ou LISTAGG pour réaliser cette tâche.

La fonction WM_CONCAT, disponible dans les bases de données Oracle antérieures à la version 11.2, offre un moyen pratique de concaténer des valeurs. La requête suivante démontre son utilisation :

<code class="language-sql">SELECT WM_CONCAT(table_name) FROM user_tables;</code>

Cette requête récupère une liste séparée par des virgules de tous les noms de tables dans le schéma actuel.

Alternativement, la fonction LISTAGG introduite dans Oracle 11.2 offre une plus grande flexibilité et un meilleur contrôle. Il permet de spécifier des délimiteurs et de trier les valeurs concaténées. Voici un exemple :

<code class="language-sql">SELECT LISTAGG(table_name, ', ') WITHIN GROUP (ORDER BY table_name) FROM user_tables;</code>

Cette requête trie les noms de tables par ordre croissant avant de les concaténer en utilisant des virgules comme délimiteurs.

En utilisant WM_CONCAT ou LISTAGG, les développeurs peuvent facilement fusionner plusieurs lignes en un seul CSV, simplifiant ainsi la manipulation des données et améliorant les performances des requêtes.

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