


Bagaimanakah saya Boleh Menggabungkan Tatasusunan dalam PostgreSQL?
Jan 05, 2025 pm 01:59 PMMenggabungkan Tatasusunan dalam PostgreSQL: Panduan Komprehensif
Pengenalan
PostgreSQL menyediakan pelbagai kaedah untuk memanipulasi tatasusunan. Satu operasi biasa adalah menggabungkan dua tatasusunan yang sama panjang menjadi pasangan elemen. Artikel ini meneroka pendekatan yang berbeza untuk mencapai tugas ini, mempertimbangkan versi PostgreSQL dan kes penggunaan khusus.
Mengzip Tatasusunan untuk Output Satu Dimensi
PostgreSQL 9.5 atau lebih baru
PostgreSQL 9.5 memperkenalkan array_agg(ungkapan tatasusunan), membolehkan anda menggabungkan berbilang tatasusunan menjadi satu tatasusunan berdimensi lebih tinggi. Ciri ini memudahkan tugas gabungan tatasusunan, menghapuskan keperluan untuk fungsi agregat tersuai.
SELECT array_agg(ARRAY[a, b]) AS ab FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
PostgreSQL 9.4
Sebelum PostgreSQL 9.5, pendekatan alternatif melibatkan penggunaan unnest( ) dengan ROWS DARI.
SELECT ARRAY[a, b] AS ab FROM unnest('{a,b,c}'::text[], '{d,e,f}'::text[]) AS tmp(a, b);
Mengzip Tatasusunan untuk Output Berbilang Dimensi
Untuk kes di mana anda perlu menggabungkan tatasusunan menjadi tatasusunan berbilang dimensi, fungsi agregat tersuai diperlukan.
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$;
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;
Fungsi Zip Umum
Fungsi berikut menyediakan pendekatan umum untuk mengezip tatasusunan apa-apa jenis:
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$;
Senario Penggunaan
Contoh yang dibentangkan dalam artikel ini mempamerkan senario berbeza untuk menggabungkan tatasusunan:
- Mudah Mengezip: Menggabungkan tatasusunan menjadi satu set pasangan elemen (dimensi tunggal output).
- Pengzip Berbilang Dimensi: Menggabungkan tatasusunan menjadi tatasusunan 2 dimensi.
- Pengzip Umum: Menggabungkan tatasusunan dari sebarang jenis dan mengembalikan a set daripada tatasusunan.
Kesimpulan
PostgreSQL menyediakan berbilang pilihan untuk menggabungkan tatasusunan, bergantung pada versi dan format output yang diingini. Artikel ini telah merangkumi pendekatan yang tersedia secara menyeluruh, membolehkan anda memilih kaedah yang paling sesuai untuk keperluan khusus anda.
Atas ialah kandungan terperinci Bagaimanakah saya Boleh Menggabungkan Tatasusunan dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
