Maison > base de données > tutoriel mysql > Comment obtenir la fonctionnalité GROUP_CONCAT de MySQL dans Oracle ?

Comment obtenir la fonctionnalité GROUP_CONCAT de MySQL dans Oracle ?

Susan Sarandon
Libérer: 2025-01-15 12:32:44
original
438 Les gens l'ont consulté

How to Achieve MySQL's GROUP_CONCAT Functionality in Oracle?

Le groupe SQL rejoint Oracle : équivalent du GROUP_CONCAT de MySQL

Dans MySQL, la fonction GROUP_CONCAT est largement utilisée pour concaténer des valeurs regroupées par une colonne spécifique. Oracle propose des fonctionnalités similaires via une alternative :

Fonction LISTAGG (11g et plus)

SELECT col1,
       LISTAGG(col2, ', ') WITHIN GROUP (ORDER BY col2) AS "names"
FROM table_x
GROUP BY col1;
Copier après la connexion

Sortie :

col1names
1a, b
2c, d, e

Fonctions personnalisées (10 g et moins)

CREATE OR REPLACE FUNCTION get_comma_separated_value(input_val NUMBER)
  RETURN VARCHAR2
IS
  return_text VARCHAR2(10000) := NULL;
BEGIN
  FOR x IN (SELECT col2 FROM table_name WHERE col1 = input_val) LOOP
    return_text := return_text || ',' || x.col2;
  END LOOP;
  RETURN LTRIM(return_text, ',');
END;
/
Copier après la connexion

Requête en utilisant cette fonction :

SELECT col1, get_comma_separated_value(col1) FROM table_name;
Copier après la connexion

Remarque : Utilisez cette fonction avec prudence car elle peut rencontrer des problèmes de mémoire lors de la gestion de grands ensembles de données.

Fonction WM_CONCAT (non prise en charge)

Certaines anciennes versions d'Oracle fournissent une fonction non prise en charge appelée WM_CONCAT. Cependant, il est recommandé d'utiliser LISTAGG ou une fonction personnalisée pour les versions Oracle modernes.

Équivalent MySQL GROUP_CONCAT

Pour être complet, la requête MySQL GROUP_CONCAT est fournie ci-dessous :

SELECT col1, GROUP_CONCAT(col2) FROM table_name GROUP BY col1;
Copier après la connexion

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 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