Maison > base de données > tutoriel mysql > Comment LISTAGG ou WM_CONCAT peuvent-ils combiner plusieurs lignes de base de données en une seule liste séparée par des virgules ?

Comment LISTAGG ou WM_CONCAT peuvent-ils combiner plusieurs lignes de base de données en une seule liste séparée par des virgules ?

Barbara Streisand
Libérer: 2025-01-19 18:02:09
original
354 Les gens l'ont consulté

How Can LISTAGG or WM_CONCAT Combine Multiple Database Rows into a Single Comma-Separated List?

Agrégation de plusieurs lignes de base de données en une seule chaîne délimitée par des virgules

Les tâches de base de données nécessitent souvent de consolider plusieurs lignes en une seule liste séparée par des virgules. Les bases de données Oracle apportent des solutions efficaces pour cela en utilisant les fonctions LISTAGG ou WM_CONCAT. Bien que WM_CONCAT soit obsolète, LISTAGG (disponible à partir d'Oracle 11.2) offre une flexibilité supérieure et constitue l'approche recommandée. Les deux fonctions obtiennent le même résultat de base : combiner des lignes en une chaîne délimitée.

Considérez une requête récupérant les noms de pays :

<code class="language-sql">SELECT * FROM countries;</code>
Copier après la connexion

Pour générer une liste de ces noms séparés par des virgules, utilisez LISTAGG :

<code class="language-sql">SELECT LISTAGG(country_name, ', ') WITHIN GROUP (ORDER BY country_name)
FROM countries;</code>
Copier après la connexion

Cela renvoie une seule ligne contenant tous les noms de pays, soigneusement séparés par des virgules et classés par ordre alphabétique.

Pour les bases de données prenant en charge le WM_CONCAT obsolète, l'équivalent serait :

<code class="language-sql">SELECT WM_CONCAT(country_name)
FROM countries;</code>
Copier après la connexion

Bien que les deux produisent un résultat similaire, LISTAGG offre des avantages. Il permet de personnaliser le délimiteur et permet de contrôler l'ordre des valeurs agrégées. Consultez la documentation de votre base de données pour les LISTAGG paramètres de fonction détaillés.

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