Heim >Datenbank >MySQL-Tutorial >Wie kann ich zwei Arrays in PostgreSQL komprimieren?

Wie kann ich zwei Arrays in PostgreSQL komprimieren?

Susan Sarandon
Susan SarandonOriginal
2025-01-04 19:02:40923Durchsuche

How Can I Zip Two Arrays in PostgreSQL?

Arrays in PostgreSQL komprimieren

In PostgreSQL kann das Kombinieren zweier Arrays gleicher Länge zu Paaren mit verschiedenen Methoden erreicht werden.

Versionen 9.5 und höher:

Postgres In Version 9.5 wurde die Funktion array_agg mit dem Konstrukt ROWS FROM eingeführt, die eine direkte Verkettung von Arrays ermöglicht:

SELECT ARRAY[a,b] AS ab
FROM   unnest('{a,b,c}'::text[], '{d,e,f}'::text[]) x(a,b);

Versionen 9.4 und älter:

Vor 9.5, Es gibt zwei Ansätze:

Einfach Zippen:

Für Arrays mit der gleichen Anzahl von Elementen verwenden Sie die folgende Abfrage:

SELECT ARRAY[a,b] AS ab
FROM  (
   SELECT unnest('{a,b,c}'::text[]) AS a
        , unnest('{d,e,f}'::text[]) AS b
    ) x;

Zippen für mehrdimensionale Arrays:

Um die komprimierten Arrays in ein mehrdimensionales Array zu konvertieren, berücksichtigen Sie das folgende benutzerdefinierte Aggregat Funktion:

CREATE AGGREGATE array_agg_mult (anyarray) (
   SFUNC    = array_cat
 , STYPE    = anyarray
 , INITCOND = '{}'
);

Verwenden Sie diese Aggregatfunktion mit der Unnest-Operation:

SELECT array_agg_mult(ARRAY[ARRAY[a,b]]) AS ab
FROM  (
   SELECT unnest('{a,b,c}'::text[]) AS a
        , unnest('{d,e,f}'::text[]) AS b
    ) x;

Das obige ist der detaillierte Inhalt vonWie kann ich zwei Arrays in PostgreSQL komprimieren?. 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