PostgreSQL bietet verschiedene Methoden zum Bearbeiten von Arrays. Eine häufige Operation besteht darin, zwei Arrays gleicher Länge zu Elementpaaren zu kombinieren. In diesem Artikel werden verschiedene Ansätze zum Erreichen dieser Aufgabe unter Berücksichtigung von PostgreSQL-Versionen und spezifischen Anwendungsfällen untersucht.
PostgreSQL 9.5 oder höher
PostgreSQL 9.5 führt array_agg(array expression) ein, mit dem Sie mehrere Arrays zu einem verketten können höherdimensionales Array. Diese Funktion vereinfacht Array-Kombinationsaufgaben und macht benutzerdefinierte Aggregatfunktionen überflüssig.
SELECT array_agg(ARRAY[a, b]) AS ab FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
PostgreSQL 9.4
Vor PostgreSQL 9.5 bestand ein alternativer Ansatz in der Verwendung von unnest( ) mit ROWS FROM.
SELECT ARRAY[a, b] AS ab FROM unnest('{a,b,c}'::text[], '{d,e,f}'::text[]) AS tmp(a, b);
In Fällen, in denen Sie Arrays zu einem mehrdimensionalen Array kombinieren müssen, ist eine benutzerdefinierte Aggregatfunktion erforderlich.
CREATE OR REPLACE FUNCTION array_agg_mult(anyarray) RETURNS SETOF anyarray LANGUAGE SQL AS $func$ SELECT ARRAY[ARRAY[a, b]] FROM unnest() AS unnest1(a, b); $func$;
SELECT array_agg_mult(ARRAY[ARRAY[a, b]]) AS ab FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
Das Folgende Die Funktion bietet einen allgemeinen Ansatz zum Komprimieren von Arrays jeglicher Art:
CREATE OR REPLACE FUNCTION zip(anyarray, anyarray) RETURNS SETOF anyarray LANGUAGE SQL AS $func$ SELECT array_agg_mult(ARRAY[ARRAY[a, b]]) FROM unnest() AS unnest1(a, b) JOIN unnest() AS unnest2(a, b) ON true; $func$;
Die in diesem Artikel vorgestellten Beispiele zeigen verschiedene Szenarien zum Kombinieren von Arrays:
PostgreSQL bietet mehrere Optionen zum Kombinieren von Arrays, abhängig von der Version und dem gewünschten Ausgabeformat. In diesem Artikel werden die verfügbaren Ansätze umfassend behandelt, sodass Sie die für Ihre spezifischen Anforderungen am besten geeignete Methode auswählen können.
Das obige ist der detaillierte Inhalt vonWie kann ich Arrays in PostgreSQL kombinieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!