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

Wie kann ich zwei Arrays in PostgreSQL komprimieren?

Susan Sarandon
Freigeben: 2025-01-04 19:02:40
Original
927 Leute haben es durchsucht

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

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

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 = '{}'
);
Nach dem Login kopieren

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

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!

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