Maison >base de données >tutoriel mysql >Comment agréger plusieurs lignes en une seule dans Oracle SQL ?

Comment agréger plusieurs lignes en une seule dans Oracle SQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-15 18:38:46783parcourir

How to Aggregate Multiple Rows into One in Oracle SQL?

Oracle SQL : combinez plusieurs lignes de données en une seule ligne

Lorsqu'un ensemble de données est organisé par colonnes spécifiques, il peut être nécessaire de fusionner plusieurs lignes en une seule. Ceci peut être réalisé grâce aux opérations d'agrégation de données de SQL.

Dans Oracle SQL, la fonction WM_CONCAT fournit un moyen simple de joindre plusieurs lignes de valeurs. Cependant, il convient de noter que cette fonction a été marquée comme non prise en charge et supprimée dans Oracle 12c et versions ultérieures.

WM_CONCAT Méthode (avant Oracle 12c)

Avant Oracle 12c, vous pouviez utiliser WM_CONCAT pour agréger des valeurs :

<code class="language-sql">SELECT field1, WM_CONCAT(field2) FROM YourTable GROUP BY field1;</code>

Alternative : LISTAGG (Oracle 12c et versions ultérieures)

Pour les bases de données Oracle 12c ou supérieure, LISTAGG fournit une alternative à WM_CONCAT. Cette fonction fournit des fonctionnalités améliorées spécifiquement pour les tâches d'agrégation de chaînes :

<code class="language-sql">SELECT field1, LISTAGG(field2, ',') WITHIN GROUP (ORDER BY field2) FROM YourTable GROUP BY field1;</code>

Implémentation personnalisée

S'il n'y a ni WM_CONCAT ni LISTAGG, vous pouvez créer une implémentation personnalisée en utilisant une combinaison de sous-requêtes et de fonctions de manipulation de chaînes. Les liens connexes (par exemple, oracle-base.com) fournissent des instructions détaillées sur cette méthode.

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!

Déclaration:
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