Heim >Datenbank >MySQL-Tutorial >Wie kann ich Werte über mehrere Zeilen in PostgreSQL verketten?

Wie kann ich Werte über mehrere Zeilen in PostgreSQL verketten?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-21 09:22:14258Durchsuche

How Can I Concatenate Values Across Multiple Rows in PostgreSQL?

PostgreSQL-Datenzeilenwertverbindung

Bei relationalen Datenbankoperationen ist es häufig erforderlich, die Daten zu verarbeiten, bevor das Endergebnis erzielt wird. Eine häufige Aufgabe besteht darin, Werte aus mehreren Zeilen basierend auf einem gemeinsamen Bezeichner zu verketten. In PostgreSQL bietet die Funktion GROUP_CONCAT hierfür eine einfache Lösung.

GROUP_CONCATFunktion

PostgreSQL Version 9.0 und höher führte die GROUP_CONCATAggregationsfunktion ein, die eine Reihe von Werten in einer Spalte nimmt und sie zu einer einzigen Zeichenfolge verkettet. Die Syntax von GROUP_CONCAT lautet wie folgt:

<code class="language-sql">GROUP_CONCAT(DISTINCT expression [ORDER BY expression] [separator])</code>

Parameter:

  • DISTINCT: (optional) Verhindert, dass doppelte Werte in die Ergebnisse einbezogen werden.
  • Ausdruck: Die zu verbindende Spalte oder der Ausdruck.
  • ORDER BY: (optional) Gibt die Reihenfolge an, in der Werte verkettet werden.
  • Trennzeichen: (optional) Zeichen oder Zeichenfolge, die zum Trennen verketteter Werte verwendet wird. Der Standardwert ist Komma (,).

Beispiel

Betrachten Sie die folgende Tabelle mit dem Namen „sample_data“:

id value
TM67 4
TM67 9
TM67 72
TM99 2
TM99 3

Um die Werte in der Spalte „Wert“ für jede eindeutige „ID“ zu verbinden, können wir GROUP_CONCAT wie folgt verwenden:

<code class="language-sql">SELECT id, GROUP_CONCAT(value) AS concatenated_values
FROM sample_data
GROUP BY id;</code>

Diese Abfrage erzeugt die folgende Ausgabe:

id concatenated_values
TM67 4,9,72
TM99 2,3

Wie Sie sehen können, sind die Werte für jede „id“ verkettet und durch Kommas getrennt.

Alternative Syntax für PostgreSQL 9.0

Ab PostgreSQL Version 9.0 kann eine alternative Syntax für GROUP_CONCAT verwendet werden:

<code class="language-sql">SELECT id, string_agg(value, ',') AS concatenated_values
FROM sample_data
GROUP BY id;</code>

Diese Syntax entspricht der oben beschriebenen GROUP_CONCAT-Syntax.

Fazit

Sie können problemlos mehrere Datenzeilen in PostgreSQL verbinden, indem Sie die Funktion GROUP_CONCAT oder string_agg verwenden. Welche Syntax Sie wählen, hängt von Ihrer PostgreSQL-Version und Ihren persönlichen Vorlieben ab.

Das obige ist der detaillierte Inhalt vonWie kann ich Werte über mehrere Zeilen in PostgreSQL verketten?. 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