Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich durch Kommas getrennte Werte aus gruppierten Daten in DB2 SQL?

Wie erstelle ich durch Kommas getrennte Werte aus gruppierten Daten in DB2 SQL?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-09 14:33:42680Durchsuche

How to Generate Comma-Separated Values from Grouped Data in DB2 SQL?

DB2 SQL gruppierte Daten generieren durch Kommas getrennte Werte

Frage: Gibt es in DB2 SQL eine Funktion, die durch Kommas getrennte Werte gruppierter Spaltendaten direkt generieren kann?

Szenario: Wir haben eine Tabelle mit einer ID-Spalte und einer Rollenspalte. Für dieselbe ID können mehrere Zeilen vorhanden sein, wobei jede Zeile eine andere Rolle für diese ID darstellt. Das Ziel besteht darin, diese Rollen für jede eindeutige ID in einer durch Kommas getrennten Zeichenfolge zu verketten.

Beispiel:

<code>ID   | Role
------------
4555 | 2
4555 | 3
4555 | 4</code>

Erwartete Ausgabe:

<code>4555 2,3,4</code>

Antwort:

DB2 LUW 9.7 führt eine neue Funktion LITAGG ein, die dieses Problem löst.

Grammatik:

<code>LISTAGG(expression, delimiter) WITHIN GROUP (ORDER BY expression ASC|DESC)</code>

Anleitung:

  • Ausdruck: Spalte zum Verknüpfen
  • Trennzeichen: Das zwischen verketteten Werten verwendete Trennzeichen (z. B.,,)

Verwendung:

Um die durch Kommas getrennten Rollenwerte für jede eindeutige ID abzurufen, können Sie die folgende Abfrage verwenden:

<code>SELECT id, LISTAGG(role, ', ') WITHIN GROUP (ORDER BY role ASC) AS roles
FROM myTable
GROUP BY id;</code>

Ausgabe:

<code>ID   | roles
------------
4555 | 2,3,4</code>

Zusätzliche Hinweise:

  • Die ORDER BY-Klausel in der LISTAGG-Funktion bestimmt die Reihenfolge der Verknüpfungen.
  • Wenn keine ORDER BY-Klausel angegeben ist, werden die Werte in beliebiger Reihenfolge verkettet.
  • Die Funktion
  • LISTAGG kann auch zum Generieren anderer Arten von Verbindungszeichenfolgen verwendet werden, beispielsweise durch Zeilenumbrüche getrennte Werte.

Das obige ist der detaillierte Inhalt vonWie erstelle ich durch Kommas getrennte Werte aus gruppierten Daten in DB2 SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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