LISTAGG

In Oracle 11gRel2 gibt es eine neue Gruppierungsfunktion das LISTAGG. Mit dieser Funktion ist man in der Lage, Spaltenwerte einer Wiederholungsgruppe in einer Zeile zusammenzufassen getrennt durch ein definiertes Trennzeichen.

Beispiel:

Inhalt der Tabelle Team:

GRUPPE               NAME

==================== ============ 

Team Blau            Harald

Team Blau            Robert

Team Blau            Thomas

Team Gelb            Alex

Team Gelb            Sabine

Team Rot             Angelika

Team Rot             Uwe

 Erzeugen einer Mitgliederliste pro Team:

select    distinct

          gruppe

         ,listagg(name,‘;‘)

          within group (order by name asc)

          over (partition by gruppe) as mitglieder

from      teams

order by  gruppe

;

Ergebnis:

GRUPPE               MITGLIEDER

==================== ==============================

Team Blau            Harald;Robert;Thomas

Team Gelb            Alex;Sabine

Team Rot             Angelika;Uwe

Die Wiederholungsgruppe wird über die Klausel PARTITION BY <COLUMN> angegeben, die Sortierung innerhalb der Liste über die Klausel ORDER BY <COLUMN>. In der Funktion LISTAGG bestimmt die erste Angabe die Spalte, die als Liste zusammengefasst werden soll, die zweite Angabe das Trennzeichen.

 

Bildnachweise: ©Fotolia_60505744_S-ci.jpg

Das könnte Sie auch interessieren

Bleiben Sie informiert:

its-people hilft Ihnen...

Weitere Blogthemen: