Menggabungkan Array a dan Array b berdasarkan posisi elemen menggunakan penggabung, kemudian mengembalikan array baru.
Sintaksis
array<R> zip_with(array<T> <a>, array<S> <b>, function<T, S, R> <combiner>)Parameter
a dan b: Wajib. Menentukan array. Tipe data elemen-elemen dalam array ditentukan oleh
Tdalamarray<T>danSdalamarray<S>. Elemen-elemen dapat berupa tipe data apa saja.combiner: Wajib. Menentukan fungsi bawaan, fungsi yang ditentukan pengguna, atau ekspresi untuk menggabungkan Array a dan Array b pada tingkat elemen. Penggabung memiliki dua parameter input. Salah satu parameter harus sesuai dengan tipe data elemen-elemen dalam Array a, sedangkan parameter lainnya harus sesuai dengan tipe data elemen-elemen dalam Array b.
Nilai kembali
Mengembalikan nilai dengan tipe ARRAY. Nilai kembali mengikuti aturan berikut:
Elemen-elemen dalam array hasil berada pada posisi yang sama dengan elemen-elemen dalam Array a dan Array b.
Jika panjang Array a dan Array b berbeda, elemen null akan ditambahkan ke array yang lebih pendek sebelum digabungkan.
Contoh
-- Nilai kembali adalah [2, 4, 6, null].
select zip_with(array(1,2,3), array(1,2,3,4), (x,y) -> x + y);Dalam contoh ini, kombinasi tanda hubung dan tanda kurung penutup (->) digunakan. Untuk informasi lebih lanjut tentang penggunaan kombinasi tanda hubung dan tanda kurung penutup (->) dalam fungsi Lambda, lihat Fungsi Lambda.
Fungsi terkait
ZIP_WITH adalah fungsi tipe kompleks. Untuk informasi lebih lanjut tentang fungsi-fungsi yang digunakan untuk memproses data dari tipe data kompleks seperti ARRAY, MAP, STRUCT, dan JSON, lihat Fungsi Tipe Kompleks.