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

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

Linda Hamilton
Libérer: 2025-01-15 18:42:43
original
642 Les gens l'ont consulté

How to Aggregate Multiple Rows into a Single Row in Oracle SQL?

Oracle SQL fusionne plusieurs lignes en une seule ligne

Dans la base de données Oracle, vous devrez peut-être fusionner plusieurs lignes d'un tableau en une seule ligne, créant ainsi une structure de tableau avec plusieurs colonnes. Supposons qu'il existe une table avec le schéma suivant :

<code>A 1
A 2
B 1
B 2</code>
Copier après la connexion

Pour atteindre les résultats attendus suivants :

<code>A 1 2
B 1 2</code>
Copier après la connexion

Oracle propose des fonctions SQL spécifiques pour répondre à ce besoin :

Fonction WM_CONCAT (obsolète)

Avertissement : La fonction WM_CONCAT est désormais obsolète et a été supprimée dans Oracle 12c et versions ultérieures. Son utilisation dans des versions ultérieures peut entraîner des résultats imprévisibles.

<code class="language-sql">SELECT field1, WM_CONCAT(field2)
FROM YourTable
GROUP BY field2;</code>
Copier après la connexion

Fonction LISTAGG

Pour les versions Oracle plus récentes, il est recommandé d'utiliser la fonction LISTAGG :

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

Agrégation personnalisée

Si ni les fonctions WM_CONCAT ni LISTAGG ne sont disponibles dans votre version d'Oracle, vous pouvez implémenter des agrégations personnalisées en suivant ces étapes :

  1. Créez une table temporaire pour stocker les données agrégées.
  2. Insérez les données requises dans une table temporaire à l'aide d'une boucle ou d'une récursivité.
  3. Récupérez les données agrégées d'une table temporaire.

Veuillez noter que les agrégations personnalisées peuvent être plus complexes et plus gourmandes en calcul que l'utilisation de fonctions prédéfinies.

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