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

Wie kann ich Arrays in PostgreSQL kombinieren?

Susan Sarandon
Freigeben: 2025-01-05 13:59:45
Original
575 Leute haben es durchsucht

How Can I Combine Arrays in PostgreSQL?

Kombinieren von Arrays in PostgreSQL: Eine umfassende Anleitung

Einführung

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.

Arrays für eindimensionale Ausgabe komprimieren

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

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

Arrays für mehrdimensional komprimieren Ausgabe

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

Allgemeine Zip-Funktion

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

Verwendung Szenarien

Die in diesem Artikel vorgestellten Beispiele zeigen verschiedene Szenarien zum Kombinieren von Arrays:

  • Einfaches Zippen:Kombinieren von Arrays zu einer Menge von Elementpaaren (einzelne dimensionale Ausgabe).
  • Multidimensionales Zipping:Kombinieren von Arrays zu einem 2-dimensionales Array.
  • Generalized Zipping:Arrays beliebiger Art kombinieren und eine Reihe von Arrays zurückgeben.

Fazit

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!

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