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
Freigeben: 2025-01-21 09:22:14
Original
255 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage