Heim > Datenbank > MySQL-Tutorial > Wie komprimiere ich zwei Arrays in PostgreSQL, um ein mehrdimensionales Array zu erstellen?

Wie komprimiere ich zwei Arrays in PostgreSQL, um ein mehrdimensionales Array zu erstellen?

Linda Hamilton
Freigeben: 2025-01-04 18:28:40
Original
552 Leute haben es durchsucht

How to Zip Two Arrays in PostgreSQL to Create a Multi-Dimensional Array?

Postgres: Kombinieren von zwei Arrays mit einer „zip()“-Funktion

Postgres-Funktionen

Es gibt mehrere Methoden, um zwei Arrays zu einem einzigen zu kombinieren mehrdimensionales Array mit Postgres-Funktionen:

Postgres 9.5 oder später:

  • array_agg(array expression): Verkettet alle Eingabearrays zu einem Array mit einer höheren Dimension.

Postgres 9.4:

  • ROWS FROM oder unnest(): Entschachtelt mehrere Arrays in parallel, wodurch Arrays unterschiedlicher Länge möglich sind.

Postgres 9.3 oder älter:

  • zip(): Eine benutzerdefinierte Funktion, die zwei Arrays gleichzeitig entschachtelt, Erstellen eines neuen Satzes von Arrays.

Einfaches zip() Funktion

Betrachten Sie das folgende Beispiel für Postgres 9.3 oder früher:

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

Ergebnis:

  ab
-------
 {a,d}
 {b,e}
 {c,f}
Nach dem Login kopieren

zip() to Multi-Dimensional Array

Um den resultierenden Satz von Arrays zu einem zweidimensionalen Array zusammenzufassen, wird eine benutzerdefinierte Aggregatfunktion aufgerufen array_agg_mult() wird benötigt:

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

Dann verwenden Sie es wie folgt:

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

Ergebnis:

{{a,d},{b,e},{c,f}}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie komprimiere ich zwei Arrays in PostgreSQL, um ein mehrdimensionales Array zu erstellen?. 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