Generieren von durch Kommas getrennten Listen in DB2 SQL mit LISTAGG
Die DB2-Funktion LISTAGG
vereinfacht die Erstellung von durch Kommas getrennten Listen von Spaltenwerten, insbesondere beim Umgang mit gruppierten Daten. Diese Funktion verkettet mithilfe eines benutzerdefinierten Trennzeichens effizient Werte aus einer angegebenen Spalte für Zeilen mit denselben Gruppierungskriterien.
Veranschaulichen wir dies anhand einer Tabelle mit den Spalten ID
und Role
, in der ein ID
mehrere zugeordnete Role
-Werte haben kann. Um eine durch Kommas getrennte Liste von Rollen für jede eindeutige ID zu generieren, verwenden Sie diese SQL-Abfrage:
<code class="language-sql">SELECT ID, LISTAGG(Role, ', ') WITHIN GROUP (ORDER BY Role ASC) AS Roles FROM myTable GROUP BY ID;</code>
Beispieldaten:
<code>ID | Role ------------ 4555 | 2 4555 | 3 4555 | 4</code>
Ergebnis:
<code>ID | Roles ------------ 4555 | 2, 3, 4</code>
Die ORDER BY
-Klausel in LISTAGG
steuert die Reihenfolge der verketteten Werte. ORDER BY Role ASC
ordnet sie aufsteigend an; ORDER BY Role DESC
würde sie absteigend anordnen. Das Weglassen von ORDER BY
führt zu einer undefinierten Reihenfolge.
Das obige ist der detaillierte Inhalt vonWie kann ich mit LISTAGG durch Kommas getrennte Listen von Spaltenwerten in DB2 erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!