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

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

Patricia Arquette
Patricia Arquetteoriginal
2025-01-15 18:34:44440parcourir

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

Consolidation de plusieurs lignes en une seule ligne dans Oracle SQL

Oracle SQL propose plusieurs méthodes pour combiner plusieurs lignes en une seule. Une approche utilise la fonction WM_CONCAT (remarque : obsolète dans Oracle 12c et versions ultérieures). WM_CONCAT concatène les valeurs de plusieurs lignes dans une colonne spécifique :

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

Pour les versions Oracle où WM_CONCAT n'est pas disponible, une fonction d'agrégation personnalisée fournit une solution viable. Des conseils détaillés sur la création d’une telle fonction pour l’agrégation de chaînes peuvent être trouvés sur des ressources telles que Oracle-base.com. Un exemple basique :

<code class="language-sql">CREATE FUNCTION String_Agg(VALUES VARCHAR2, DELIM VARCHAR2) RETURN VARCHAR2;
-- Function implementation details here</code>

Cette fonction personnalisée permet l'agrégation de valeurs de chaîne :

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

Les fonctions d'agrégation WM_CONCAT (le cas échéant) et personnalisées consolident efficacement plusieurs lignes en une seule, présentant les données de manière plus concise et organisée.

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