Maison > base de données > tutoriel mysql > Comment puis-je concaténer les valeurs de colonnes de plusieurs lignes dans Oracle SQL à l'aide de LISTAGG ?

Comment puis-je concaténer les valeurs de colonnes de plusieurs lignes dans Oracle SQL à l'aide de LISTAGG ?

Patricia Arquette
Libérer: 2025-01-23 15:11:12
original
147 Les gens l'ont consulté

How Can I Concatenate Column Values from Multiple Rows in Oracle SQL Using LISTAGG?

Oracle SQL : combinaison de valeurs de colonnes sur plusieurs lignes avec LISTAGG

Oracle propose plusieurs façons de combiner les données de plusieurs lignes en une seule chaîne. La fonction LISTAGG est une méthode particulièrement efficace.

Imaginez que vous ayez deux tableaux : le tableau A (avec une colonne PID contenant les valeurs A, B, C) et le tableau B (avec les colonnes PID, SEQ et Desc). L'objectif est de concaténer les valeurs Desc du tableau B, regroupées par PID et ordonnées par SEQ, en une seule colonne Description dans l'ensemble de résultats.

Voici comment y parvenir en utilisant LISTAGG :

<code class="language-sql">SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description
FROM B
GROUP BY pid;</code>
Copier après la connexion

Cette requête utilise LISTAGG pour agréger les valeurs Desc pour chaque PID unique, en les classant par colonne SEQ et en utilisant un espace (' ') comme délimiteur. La sortie affichera chaque PID avec ses valeurs Desc concaténées correspondantes dans la colonne description.

Pour inclure uniquement les PID présents dans le tableau A, joignez simplement cette requête au tableau A :

<code class="language-sql">SELECT a.pid, LISTAGG(b.Desc, ' ') WITHIN GROUP (ORDER BY b.seq) AS description
FROM A a
JOIN B b ON a.pid = b.pid
GROUP BY a.pid;</code>
Copier après la connexion

Considération importante : LISTAGG fonctionne généralement correctement avec VARCHAR2 types de données.

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