Komma-getrennte Ausgabe nach Gruppe in DB2 generieren
Die in DB2 integrierte Funktion LISTAGG
kann Spaltenwerte mit derselben Gruppierung, getrennt durch Kommas, verketten. Dies ist nützlich, wenn Sie Daten innerhalb von Gruppen zusammenführen müssen.
Angenommen, eine Tabelle enthält zwei Spalten, ID und Rolle, und drei Zeilen haben dieselbe ID, aber unterschiedliche Rollenwerte. Das Ziel besteht darin, die Rollenwerte für jede ID in einer durch Kommas getrennten Liste zu verketten.
Die Funktion LISTAGG
, die ab DB2 LUW 9.7 eingeführt wurde, erreicht Folgendes:
<code class="language-sql">SELECT ID, LISTAGG(Role, ', ') AS Roles FROM myTable GROUP BY ID;</code>
Diese Abfrage generiert die gewünschte Ausgabe:
<code>ID Roles ---------- 4555 2,3,4</code>
Es ist erwähnenswert, dass Sie die WITHIN GROUP
-Klausel und die ORDER BY
-Anweisung verwenden können, um die Reihenfolge anzugeben, in der Werte verkettet werden. Dies ermöglicht eine bessere Kontrolle über die Reihenfolge, in der die Werte aufgelistet werden:
<code class="language-sql">SELECT ID, LISTAGG(Role, ', ') WITHIN GROUP (ORDER BY Role ASC) AS Roles FROM myTable GROUP BY ID;</code>
In diesem Fall lautet die Ausgabe:
<code>ID Roles ---------- 4555 2,3,4</code>
LISTAGG
Bietet eine bequeme Möglichkeit, Daten in DB2 zu aggregieren und zu verknüpfen und ermöglicht so effiziente gruppenbasierte String-Operationen.
Das obige ist der detaillierte Inhalt vonWie kann ich durch Kommas getrennte Wertelisten aus Gruppen in DB2 erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!