Maison >base de données >tutoriel mysql >Comment puis-je concaténer les valeurs de colonnes de plusieurs lignes dans 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!
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;
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;
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!
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!