Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh Zip Dua Array dalam PostgreSQL?

Bagaimanakah saya boleh Zip Dua Array dalam PostgreSQL?

Susan Sarandon
Susan Sarandonasal
2025-01-04 19:02:40896semak imbas

How Can I Zip Two Arrays in PostgreSQL?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn