LISTAGG-Funktion Oracle/PLSQL

In diesem Oracle-Lernprogramm wird erläutert, wie Sie die Oracle/PLSQL LISTAGG-Funktion mit Syntax und Beispielen verwenden.

Beschreibung

Die Oracle/PLSQL LISTAGG-Funktion verkettet Werte der Spalte measure_column für jede GROUP basierend auf order_by_clause.

Syntax

Die Syntax für die LISTAGG-Funktion in Oracle/PLSQL lautet:

LISTAGG (measure_column [, ‚delimiter‘]) WITHIN GROUP (order_by_clause) [OVER (query_partition_clause)]

Parameter oder Argumente

measure_column Die Spalte oder der Ausdruck, deren Werte Sie in der Ergebnismenge verketten möchten. Nullwerte in der measure_column werden ignoriert.

delimiter Wahlweise. Es ist das Trennzeichen, das beim Trennen der measure_column – Werte beim Ausgeben der Ergebnisse verwendet wird.

order_by_clause Sie bestimmt die Reihenfolge, in der die verketteten Werte (dh: measure_column) zurückgegeben werden.

Kehrt zurück

  • Die Funktion LISTAGG gibt einen Zeichenfolgenwert zurück.

Gilt für

Die LISTAGG-Funktion kann in folgenden Versionen von Oracle/PLSQL verwendet werden:

  • Oracle 12c, Oracle 11g Release 2

Beispiel

Die Funktion LISTAGG kann in Oracle/PLSQL verwendet werden.

Da dies eine kompliziertere Funktion zu verstehen ist, betrachten wir ein Beispiel, das Daten enthält, um zu demonstrieren, was die Funktion ausgibt.

Wenn Sie eine Produkttabelle mit folgenden Daten hatten:

PRODUCT_ID PRODUCT_NAME
1001 Bananas
1002 Apples
1003 Pears
1004 Oranges

Und dann haben Sie eine SELECT-Anweisung mit der Funktion LISTAGG ausgeführt:

Sie würden folgende Ergebnisse erhalten:

Product_Listing
Apples, Bananas, Oranges, Pears

In diesem Beispiel werden die Ergebnisse der Funktion LISTAGG in einem einzelnen Feld ausgegeben, wobei die Werte durch Kommas getrennt sind.

Sie können die ORDER BY-Klausel ändern, um das DESC-Schlüsselwort zu verwenden, und die SELECT-Anweisung wie folgt ändern:

Dies würde zu folgenden Ergebnissen führen:

Product_Listing
Pears, Oranges, Bananas, Apples

Sie können das Trennzeichen wie folgt von einem Komma in ein Semikolon ändern:

Dies würde Ihre Ergebnisse wie folgt ändern:

Product_Listing
Pears; Oranges; Bananas; Apples