


Wie verkette ich Strings innerhalb einer PostgreSQL-Abfrage „group by'?
String-Felder in der PostgreSQL-group by
Abfrage verketten
Bei der Verarbeitung von Daten in einer PostgreSQL-Datenbank müssen Sie möglicherweise Zeichenfolgen für bestimmte Felder in einer group by
-Abfrage verketten. Dies kann je nach PostgreSQL-Version auf unterschiedliche Weise erreicht werden.
PostgreSQL 9.0 und höher
Moderne PostgreSQL-Versionen (veröffentlicht nach 2010) bieten die Funktion string_agg(expression, delimiter)
. Diese Funktion ermöglicht die Verkettung von Zeichenfolgen in group by
-Abfragen, getrennt durch angegebene Trennzeichen.
Um beispielsweise die COMPANY_ID
-Felder in jeder EMPLOYEE
-Gruppe zu verbinden, können Sie die folgende Abfrage verwenden:
SELECT company_id, string_agg(employee, ', ') FROM mytable GROUP BY company_id;
PostgreSQL 8.4.x
In PostgreSQL 8.4 können Sie array_agg(expression)
Aggregatfunktionen verwenden, um Werte in einem Array zu sammeln. Das Array kann dann mit der Funktion array_to_string()
in einen verketteten String umgewandelt werden:
SELECT company_id, array_to_string(array_agg(employee), ', ') FROM mytable GROUP BY company_id;
PostgreSQL 8.3.x und niedrigere Versionen
In älteren PostgreSQL-Versionen gibt es keine integrierte Aggregatfunktion für die String-Verkettung. Eine benutzerdefinierte Implementierung umfasst das Erstellen einer benutzerdefinierten Aggregatfunktion mithilfe der Funktion textcat
:
CREATE AGGREGATE textcat_all( basetype = text, sfunc = textcat, stype = text, initcond = '' );
Darüber hinaus kann eine benutzerdefinierte Verbindungsfunktion erstellt werden, um bestimmte Anforderungen zu erfüllen, z. B. das Ignorieren von Nullwerten oder leeren Zeichenfolgen:
CREATE FUNCTION commacat_ignore_nulls(acc text, instr text) RETURNS text AS $$ BEGIN IF acc IS NULL OR acc = '' THEN RETURN instr; ELSIF instr IS NULL OR instr = '' THEN RETURN acc; ELSE RETURN acc || ', ' || instr; END IF; END; $$ LANGUAGE plpgsql;
Mit dieser Funktion können Sie die Abfrage wie folgt ändern:
SELECT company_id, commacat_ignore_nulls(employee) FROM mytable GROUP BY company_id;
Das obige ist der detaillierte Inhalt vonWie verkette ich Strings innerhalb einer PostgreSQL-Abfrage „group by'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung?

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin)

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)?

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen?
