Heim > Datenbank > MySQL-Tutorial > Wie kann ich Zeilen in Oracle verketten und gruppieren?

Wie kann ich Zeilen in Oracle verketten und gruppieren?

Linda Hamilton
Freigeben: 2025-01-04 22:58:41
Original
185 Leute haben es durchsucht

How Can I Concatenate and Group Rows in Oracle?

Verketten und Gruppieren mehrerer Zeilen in Oracle

In Oracle kann die Aufgabe, Datensätze basierend auf einer Gruppierungsbedingung zu verketten, eine Herausforderung sein. Stellen Sie sich eine Tabelle wie diese vor:

NAME          GROUP_NAME
name1         groupA
name2         groupB
name5         groupC
name4         groupA
name3         groupC
Nach dem Login kopieren

Um das gewünschte Ergebnis der Gruppierung und Verkettung der Spalte „NAME“ basierend auf „GROUP_NAME“ zu erzielen, können Sie die LISTAGG-Funktion in Oracle 11g oder höher nutzen:

SELECT
group_name,
LISTAGG(name, ', ') WITHIN GROUP (ORDER BY GROUP) "names"
FROM name_table
GROUP BY group_name
Nach dem Login kopieren

Wenn Sie jedoch mit einer Oracle-Version arbeiten, die LISTAGG nicht unterstützt, gibt es alternative Methoden. Ein Ansatz nutzt analytische Funktionen:

select grp,
    ltrim(max(sys_connect_by_path
       (name, ',' )), ',') scbp
  from (select name, grp,
            row_number() over
           (partition by grp
            order by name) rn
         from tab
          )
start with rn = 1
connect by prior rn = rn-1
and prior grp = grp
  group by grp
  order by grp
Nach dem Login kopieren

Durch die Kombination dieser Techniken können Sie mehrere Zeilen in Oracle effektiv verketten und gruppieren, auch wenn LISTAGG nicht vorhanden ist.

Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen in Oracle verketten und gruppieren?. 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