Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Zip Dua Tatasusunan dalam PostgreSQL untuk Mencipta Tatasusunan Berbilang Dimensi?
Terdapat beberapa kaedah untuk menggabungkan dua tatasusunan menjadi satu tatasusunan berbilang dimensi menggunakan fungsi Postgres:
Postgres 9.5 atau lebih baru:
Postgres 9.4:
Postgres 9.3 atau lebih lama:
Pertimbangkan contoh berikut untuk Postgres 9.3 atau lebih awal:
SELECT ARRAY[a,b] AS ab FROM ( SELECT unnest('{a,b,c}'::text[]) AS a , unnest('{d,e,f}'::text[]) AS b ) x;
Hasil:
ab ------- {a,d} {b,e} {c,f}
Untuk mengagregatkan set tatasusunan yang terhasil menjadi 2 dimensi tatasusunan, fungsi agregat tersuai yang dipanggil array_agg_mult() diperlukan:
CREATE AGGREGATE array_agg_mult (anyarray) ( SFUNC = array_cat , STYPE = anyarray , INITCOND = '{}' );
Kemudian, gunakannya seperti berikut:
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;
Keputusan:
{{a,d},{b,e},{c,f}}
Atas ialah kandungan terperinci Bagaimana untuk Zip Dua Tatasusunan dalam PostgreSQL untuk Mencipta Tatasusunan Berbilang Dimensi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!