Maison > base de données > tutoriel mysql > Comment concaténer et regrouper plusieurs lignes dans Oracle ?

Comment concaténer et regrouper plusieurs lignes dans Oracle ?

Susan Sarandon
Libérer: 2025-01-04 02:56:39
original
542 Les gens l'ont consulté

How to Concatenate and Group Multiple Rows in Oracle?

Concaténer et regrouper plusieurs lignes dans Oracle

Dans un scénario où vous avez une table avec plusieurs lignes nécessitant une concaténation et un regroupement, l'utilisation de la fonction LISTAGG dans Oracle 11g fournit une solution simple :

SELECT group_name, LISTAGG(name, ', ') WITHIN GROUP (ORDER BY GROUP) AS "names"
FROM name_table
GROUP BY group_name
Copier après la connexion

La fonction LISTAGG agrège plusieurs valeurs à partir d'un groupe de lignes, en les séparant par un délimiteur spécifié (ici, ','). Il simplifie le processus de concaténation et de regroupement, produisant le résultat souhaité.

Pour les bases de données antérieures à Oracle 11g, une approche alternative utilisant l'analyse est disponible :

SELECT grp, ltrim(max(sys_connect_by_path(name, ',' )), ',') AS scbp
FROM (
    SELECT name, grp, row_number() OVER (PARTITION BY grp ORDER BY name) AS rn
    FROM tab
)
START WITH rn = 1
CONNECT BY PRIOR rn = rn - 1 AND PRIOR grp = grp
GROUP BY grp
ORDER BY grp
Copier après la connexion

Cette requête exploite le CONNECT BY clause et la fonction analytique row_number() pour concaténer et regrouper les valeurs de manière itérative, produisant le même résultat que la méthode LISTAGG.

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