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