SQL Academy
Premium
Funktionsreferenz

STRING_AGG

Entsprechung in MySQL:

Verbindet die Werte einer Gruppe von Zeilen zu einem String mit Trennzeichen.

PostgreSQL 17.9
STRING_AGG([DISTINCT] expression, delimiter [ORDER BY sort_expression [ASC | DESC] [NULLS FIRST | NULLS LAST]])
  • [ ]optionaler Teil
  • a | beine der Optionen
DISTINCT
Nur eindeutige Werte verbinden
SchlüsselwortOptional
expression
String-Ausdruck, dessen Werte verbunden werden; eine Zahl muss in Text umgewandelt werden
text
delimiter
Trennzeichen zwischen den Werten
text
ORDER BY sort_expression [ASC | DESC] [NULLS FIRST | NULLS LAST]
Reihenfolge der Werte, ohne sie beliebig
Optional
sort_expression
Spalte oder Ausdruck, nach dem sortiert wird
ASC | DESC
Richtung, standardmäßig ASC
SchlüsselwortOptional
ASCDESC
NULLS FIRST | NULLS LAST
Position von NULL, standardmäßig am Ende bei ASC und am Anfang bei DESC
SchlüsselwortOptional
NULLS FIRSTNULLS LAST

Rückgabewert

String (text); NULL-Werte werden übersprungen, NULL, wenn alle Werte NULL sind

Beispiele

Alle Namen mit Komma getrennt

PostgreSQL 17.9
SELECT STRING_AGG(member_name, ', ')
FROM FamilyMembers;
string_agg
Headley Quincey, Flavia Quincey, Andie Quincey, Lela Quincey, Annie Quincey, Ernest Forrest, Constance Forrest, Wednesday Addams

Namen nach Status alphabetisch

PostgreSQL 17.9
SELECT status,
	STRING_AGG(
		member_name,
		', '
		ORDER BY member_name
	) AS members
FROM FamilyMembers
GROUP BY status
ORDER BY status;
statusmembers
daughterAnnie Quincey, Lela Quincey, Wednesday Addams
fatherErnest Forrest, Headley Quincey
motherConstance Forrest, Flavia Quincey
sonAndie Quincey

Zahlen über ::text und eindeutige Status

PostgreSQL 17.9
SELECT STRING_AGG(
		member_id::text,
		','
		ORDER BY member_id
	) AS ids,
	STRING_AGG(DISTINCT status, ', ') AS statuses
FROM FamilyMembers;
idsstatuses
1,2,3,4,5,6,7,8daughter, father, mother, son

Details

Die Werte müssen Text sein: STRING_AGG(member_id, ',') führt zu einem Fehler, STRING_AGG(member_id::text, ',') funktioniert.

Zusammen mit DISTINCT muss sort_expression mit expression übereinstimmen.

Siehe auch