In einigen Datenbankanwendungen ist es erforderlich, für jeden eindeutigen Bezeichner eine einzelne Zeile aus der Tabelle abzurufen und die entsprechenden Feldwerte zu verketten. Beispiel: Angenommen, eine Tabelle enthält die folgenden Daten:
ID | 列A | 列B |
---|---|---|
TM67 | 4 | 32556 |
TM67 | 9 | 98200 |
TM67 | 72 | 22300 |
TM99 | 2 | 23009 |
TM99 | 3 | 11200 |
Die erwartete Ausgabe ist wie folgt:
ID | 列A | 列B |
---|---|---|
TM67 | 4,9,72 | 32556,98200,22300 |
TM99 | 2,3 | 23009,11200 |
In MySQL wird normalerweise die Aggregatfunktion GROUP_CONCAT verwendet, um diesen Zweck zu erreichen. Allerdings gibt es in PostgreSQL kein direktes Äquivalent.
Glücklicherweise bietet PostgreSQL einige alternative Mechanismen, um das gleiche Ergebnis zu erzielen:
<code class="language-sql">SELECT id, string_agg(some_column, ',') FROM the_table GROUP BY id</code>
Diese Methode verwendet die Funktion string_agg (eingeführt in PostgreSQL 9.0), um die Werte der angegebenen Spalte in einer durch Kommas getrennten Zeichenfolge zusammenzufassen. Die GROUP BY-Klausel stellt sicher, dass der Aggregationsvorgang für jede eindeutige ID separat durchgeführt wird.
Das obige ist der detaillierte Inhalt vonWie verkette ich Feldwerte in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!