Heim > Datenbank > MySQL-Tutorial > Wie erreicht man die GROUP_CONCAT-Funktionalität von MySQL in Oracle?

Wie erreicht man die GROUP_CONCAT-Funktionalität von MySQL in Oracle?

Susan Sarandon
Freigeben: 2025-01-15 12:32:44
Original
411 Leute haben es durchsucht

How to Achieve MySQL's GROUP_CONCAT Functionality in Oracle?

SQL-Gruppenbeitritt in Oracle: Äquivalent zu GROUP_CONCAT von MySQL

In MySQL wird die Funktion GROUP_CONCAT häufig zum Verketten von Werten verwendet, die nach einer bestimmten Spalte gruppiert sind. Oracle bietet eine ähnliche Funktionalität über eine Alternative:

LISTAGG-Funktion (11 g und mehr)

1

2

3

4

<code class="language-sql">SELECT col1,

       LISTAGG(col2, ', ') WITHIN GROUP (ORDER BY col2) AS "names"

FROM table_x

GROUP BY col1;</code>

Nach dem Login kopieren

Ausgabe:

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

Benutzerdefinierte Funktionen (10 g und weniger)

1

2

3

4

5

6

7

8

9

10

11

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

Nach dem Login kopieren

Abfrage mit dieser Funktion:

1

<code class="language-sql">SELECT col1, get_comma_separated_value(col1) FROM table_name;</code>

Nach dem Login kopieren

Hinweis: Verwenden Sie diese Funktion mit Vorsicht, da es bei der Verarbeitung großer Datenmengen zu Speicherproblemen kommen kann.

WM_CONCAT-Funktion (nicht unterstützt)

Einige ältere Versionen von Oracle bieten eine nicht unterstützte Funktion namens WM_CONCAT. Es wird jedoch empfohlen, LISTAGG oder eine benutzerdefinierte Funktion für moderne Oracle-Versionen zu verwenden.

MySQL GROUP_CONCAT-Äquivalent

Der Vollständigkeit halber wird unten die MySQL-GROUP_CONCAT-Abfrage bereitgestellt:

1

<code class="language-sql">SELECT col1, GROUP_CONCAT(col2) FROM table_name GROUP BY col1;</code>

Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erreicht man die GROUP_CONCAT-Funktionalität von MySQL in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage