Membuat peta berdasarkan array struktur yang diberikan.
Sintaksis
map<K, V> map_from_entries([string <mapDupKeyPolicy>,] array <struct<K, V> , struct<K, V>[,...]>)Parameter
mapDupKeyPolicy: Opsional. Nilai bertipe STRING. Parameter ini menentukan metode untuk memproses kunci duplikat. Nilai valid:
exception: Mengembalikan kesalahan.
last_win: Kunci terakhir menimpa kunci sebelumnya.
Anda juga dapat mengonfigurasi parameter
odps.sql.map.key.dedup.policypada tingkat sesi untuk menentukan metode pemrosesan kunci duplikat. Sebagai contoh, Anda dapat mengaturodps.sql.map.key.dedup.policymenjadi exception. Jika tidak dikonfigurasi, nilai default last_win akan digunakan.CatatanImplementasi perilaku MaxCompute ditentukan berdasarkan mapDupKeyPolicy. Jika mapDupKeyPolicy tidak ditentukan, nilai dari
odps.sql.map.key.dedup.policydigunakan.Data bertipe STRUCT diperlukan. K sesuai dengan kunci dalam peta yang dihasilkan. V sesuai dengan nilai dalam peta yang dihasilkan.
KdanVdalamstruct<K, V>menentukan kunci dan nilai dari array struktur.
Nilai pengembalian
Nilai bertipe MAP dikembalikan. Nilai pengembalian bervariasi berdasarkan aturan berikut:
Jika array struktur adalah null, maka null dikembalikan.
Jika jumlah bidang dalam array struktur bukan 2 atau key dari array struktur adalah null, kesalahan dikembalikan.
Contoh
-- Nilai pengembalian adalah {1:a, 2:b}.
select map_from_entries(array(struct(1, 'a'), struct(2, 'b')));
-- Nilai pengembalian adalah {1:a, 2:c}.
select map_from_entries(array(struct(1, 'a'), struct(2, 'b'), struct(2, 'c')));Fungsi terkait
MAP_FROM_ENTRIES adalah fungsi tipe kompleks. Untuk informasi lebih lanjut tentang fungsi yang digunakan untuk memproses data dari tipe data kompleks seperti ARRAY, MAP, STRUCT, dan JSON, lihat Fungsi Tipe Kompleks.