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

<code class="language-sql">SELECT col1,
       LISTAGG(col2, ', ') WITHIN GROUP (ORDER BY col2) AS "names"
FROM table_x
GROUP BY col1;</code>
Copier après la connexion

Sortie :

col1 names
1 a, b
2 c, d, e

Fonctions personnalisées (10 g et moins)

<code class="language-sql">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;
/</code>
Copier après la connexion

Requête en utilisant cette fonction :

<code class="language-sql">SELECT col1, get_comma_separated_value(col1) FROM table_name;</code>
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 :

<code class="language-sql">SELECT col1, GROUP_CONCAT(col2) FROM table_name GROUP BY col1;</code>
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!

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