Maison > base de données > tutoriel mysql > Comment puis-je concaténer les valeurs de colonnes de plusieurs lignes dans Oracle ?

Comment puis-je concaténer les valeurs de colonnes de plusieurs lignes dans Oracle ?

DDD
Libérer: 2025-01-23 15:06:09
original
572 Les gens l'ont consulté

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

Concaténation des valeurs de colonnes de plusieurs lignes dans Oracle : une solution complète

Oracle offre des fonctionnalités robustes pour la manipulation des données, notamment la possibilité de concaténer des colonnes valeurs de plusieurs lignes. Prenons l'exemple suivant, dans lequel nous visons à combiner les valeurs « Desc » du tableau B pour chaque valeur « PID » unique dans le tableau A.

Table A:

PID
A
B
C

Table B:

PID   SEQ    Desc
A     1      Have
A     2      a nice
A     3      day.
B     1      Nice Work.
C     1      Yes
C     2      we can
C     3      do
C     4      this work!
Copier après la connexion

Pour obtenir le résultat souhaité, où la colonne « Desc » dans la table de sortie se trouve une concaténation des valeurs "Desc" de la table B pour chaque "PID", nous pouvons utiliser la requête SQL suivante :

SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description
FROM B GROUP BY pid;
Copier après la connexion

Cette requête exploite le Fonction LISTAGG, qui regroupe les valeurs d'une colonne spécifiée en une seule chaîne. En utilisant la clause GROUP BY, nous nous assurons que les valeurs sont regroupées par la colonne "PID". La clause ORDER BY précise en outre l'ordre dans lequel les valeurs sont concaténées (dans ce cas, par la colonne "SEQ").

Pour terminer le processus, nous pouvons joindre la sortie de cette requête avec la table A à filtrer les valeurs « PID » selon les besoins :

SELECT A.PID, description
FROM A
INNER JOIN (
    SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description
    FROM B GROUP BY pid
) AS B ON A.PID = B.pid;
Copier après la connexion

Le résultat résultant ressemblera à ce qui suit :

PID   Desc
A     Have a nice day.
B     Nice Work.
C     Yes we can do this work!
Copier après la connexion

Avec cette approche, nous avons effectivement concaténer les valeurs de colonnes de plusieurs lignes dans Oracle, fournissant ainsi un outil puissant pour la transformation et la manipulation des 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal