Maison >base de données >tutoriel mysql >Comment agréger plusieurs lignes en une seule dans 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!