Maison > base de données > tutoriel mysql > Comment concaténer plusieurs lignes en une seule ligne dans Oracle sans procédures stockées ?

Comment concaténer plusieurs lignes en une seule ligne dans Oracle sans procédures stockées ?

Patricia Arquette
Libérer: 2025-01-05 15:27:40
original
310 Les gens l'ont consulté

How to Concatenate Multiple Rows into a Single Row in Oracle Without Stored Procedures?

Concaténation de plusieurs lignes en une seule ligne dans Oracle sans procédures stockées

Le problème en question recherche une méthode dans Oracle pour concaténer plusieurs lignes en un sans recourir à des procédures stockées. L'ensemble de données donné se compose de colonnes question_id et element_id avec des valeurs question_id en double. Le résultat souhaité est de fusionner les valeurs element_id associées au même question_id en une seule ligne.

Pour y parvenir, vous pouvez utiliser la clause LISTAGG, introduite dans Oracle 11gR2. Voici la syntaxe :

SELECT question_id,
       LISTAGG(element_id, ',') WITHIN GROUP (ORDER BY element_id)
FROM YOUR_TABLE
GROUP BY question_id;
Copier après la connexion

Cette clause concatène les valeurs element_id pour chaque question_id, séparées par le délimiteur spécifié (une virgule dans ce cas). Notez que la clause WITHIN GROUP garantit que les valeurs sont ordonnées avant la concaténation.

Pour les versions Oracle 12cR2 et ultérieures, les clauses ON OVERFLOW TRUNCATE/ERROR peuvent être utilisées pour gérer les problèmes potentiels liés aux limitations de longueur de chaîne :

SELECT question_id,
       LISTAGG(element_id, ',') WITHIN GROUP (ORDER BY element_id)
       ON OVERFLOW TRUNCATE
FROM YOUR_TABLE
GROUP BY question_id;
Copier après la connexion

ou

SELECT question_id,
       LISTAGG(element_id, ',') WITHIN GROUP (ORDER BY element_id)
       ON OVERFLOW ERROR
FROM YOUR_TABLE
GROUP BY question_id;
Copier après la connexion

En adhérant à la syntaxe et en utilisant les options appropriées, les développeurs peut concaténer plusieurs lignes en une seule ligne sans créer de procédures stockées dans Oracle.

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