Heim >Datenbank >MySQL-Tutorial >Wie kann ich in PostgreSQL zwei Arrays gleicher Länge zu einem zweidimensionalen Array zusammenführen?

Wie kann ich in PostgreSQL zwei Arrays gleicher Länge zu einem zweidimensionalen Array zusammenführen?

Susan Sarandon
Susan SarandonOriginal
2025-01-04 19:29:41809Durchsuche

How Can I Merge Two Arrays of Equal Length into a Two-Dimensional Array in PostgreSQL?

Kombinieren von Arrays mit Zip-ähnlicher Funktionalität in PostgreSQL

Frage: Gibt es in PostgreSQL eine spezielle Funktion, die zwei Arrays gleicher Länge zusammenführt? eine zweidimensionale array?

Antwort:

Postgres 9.5 und höher

Wir stellen vor: array_agg(array expression), ein leistungsstarkes Tool, das alle Eingabearrays in einem einzigen kombiniert Array einer höheren Dimension. Diese Funktion hat die Notwendigkeit benutzerdefinierter Aggregatfunktionen wie array_agg_mult() effektiv ersetzt.

Postgres 9.4

Verwenden Sie ROWS FROM oder die erweiterte Funktion unnest(), um die Verschachtelung mehrerer Arrays gleichzeitig aufzuheben. Die resultierende Array-Größe entspricht dem größten Eingabearray, wobei kleinere Arrays mit Nullwerten aufgefüllt werden.

Postgres 9.3 und früher

Einfaches Zip() für eindimensionales Array:

Nutzen Sie die Funktion unnest(), um eine einfache zip()-Funktionalität zu erstellen, die zwei Arrays parallel entschachtelt. Dieser Ansatz funktioniert effektiv, solange die Arrays die gleiche Anzahl von Elementen haben.

Zip() für mehrdimensionale Arrays:

Das Kombinieren der nicht verschachtelten Arrays zu einem zweidimensionalen Array erfordert einen Benutzerdefiniert Aggregatfunktion wie array_agg_mult(). Diese Funktion fasst einzelne Arrays zu einem mehrdimensionalen Array zusammen. Um diese Funktion für die zip()-Funktionalität zu nutzen, packen Sie sie in eine separate Funktion ein,

Das obige ist der detaillierte Inhalt vonWie kann ich in PostgreSQL zwei Arrays gleicher Länge zu einem zweidimensionalen Array zusammenführen?. 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