Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya Boleh Menggabungkan Tatasusunan dalam PostgreSQL?
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.
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);
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 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$;
Contoh yang dibentangkan dalam artikel ini mempamerkan senario berbeza untuk menggabungkan tatasusunan:
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!