Mengzip Tatasusunan dalam PostgreSQL
Dalam PostgreSQL, menggabungkan dua tatasusunan yang sama panjang menjadi pasangan boleh dicapai menggunakan pelbagai kaedah.
Versi 9.5 dan Kemudian:
Postgres versi 9.5 memperkenalkan fungsi array_agg dengan binaan ROWS FROM, yang membenarkan penggabungan langsung tatasusunan:
SELECT ARRAY[a,b] AS ab FROM unnest('{a,b,c}'::text[], '{d,e,f}'::text[]) x(a,b);
Versi 9.4 dan Lebih Lama:
Sebelum 9.5, terdapat dua pendekatan:
Mengzip Mudah:
Untuk tatasusunan dengan bilangan elemen yang sama, gunakan pertanyaan berikut:
SELECT ARRAY[a,b] AS ab FROM ( SELECT unnest('{a,b,c}'::text[]) AS a , unnest('{d,e,f}'::text[]) AS b ) x;
Mengzip untuk Tatasusunan Berbilang Dimensi:
Untuk menukar tatasusunan berzip menjadi tatasusunan berbilang dimensi, pertimbangkan fungsi agregat tersuai berikut:
CREATE AGGREGATE array_agg_mult (anyarray) ( SFUNC = array_cat , STYPE = anyarray , INITCOND = '{}' );
Gunakan fungsi agregat ini dengan operasi tidak bersarang:
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;
Atas ialah kandungan terperinci Bagaimanakah saya boleh Zip Dua Array dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!