Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi ARRAY_POSITIONS
Mengembalikan array posisi (indeks) di mana elemen tertentu muncul dalam array input. Indeks berbasis 0, di mana 0 menunjukkan elemen pertama, 1 menunjukkan elemen kedua, dan seterusnya. Mengembalikan array kosong jika elemen tidak ditemukan.
Sintaksis
ARRAY_POSITIONS( array, value [, null_match] )
Argumen
- array
-
Ekspresi SUPER yang menentukan array untuk mencari.
- nilai
-
Sebuah nilai yang menentukan elemen untuk mencari.
- null_match
-
Sebuah nilai boolean yang menentukan bagaimana nilai-nilai NULL ditangani:
- null_match = FALSE: Searching for NULL returns NULL. If the array contains NULL values and no match is found for a non-NULL search value, returns NULL.
- null_match = TRUE: NULLs are treated as valid, searchable elements. If the array contains NULL values and no match is found for a non-NULL search value, it returns an empty array.
Defaultnya adalah BETUL.
Penanganan NULL default juga dapat ditentukan oleh opsi konfigurasi:
-- same as null_match = TRUE SET default_array_search_null_handling to TRUE;
Jenis pengembalian
Fungsi ARRAY_POSITIONS mengembalikan tipe SUPER.
Contoh
Contoh berikut menunjukkan fungsi ARRAY_POSITIONS.
SELECT ARRAY_POSITIONS(ARRAY('red', 'green', 'red'), 'red'); array_positions ----------------- [0,2] (1 row) SELECT ARRAY_POSITIONS(ARRAY(1, 2, 3), 4); array_positions ----------------- [] (1 row)
Contoh berikut menunjukkan perilaku fungsi dengan null_match disetel ke TRUE.
SET default_array_search_null_handling to TRUE; -- NULL search is enabled SELECT ARRAY_POSITIONS(ARRAY('red', NULL, 'green', NULL), NULL); array_positions ----------------- [1,3] (1 row) -- The array can contain NULLs SELECT ARRAY_POSITIONS(ARRAY('red', NULL, 'green'), 'blue', TRUE); array_positions ----------------- [] (1 row)
Contoh berikut menunjukkan perilaku fungsi dengan null_match disetel ke FALSE. Perhatikan bahwa menentukan perilaku null_match dalam fungsi akan mengganti pengaturan konfigurasi default.
-- same as null_match = TRUE SET default_array_search_null_handling to TRUE; -- NULL search is disabled. The default behavior is overridden SELECT ARRAY_POSITIONS(ARRAY('red', 'green'), NULL, FALSE); array_positions ----------------- (1 row) -- same as null_match = FALSE SET default_array_search_null_handling to FALSE; -- The array contains NULL and a match is found SELECT ARRAY_POSITIONS(ARRAY('red', NULL, 'green'), 'green'); array_positions ----------------- [2] (1 row) -- The array contains NULL but no match is found SELECT ARRAY_POSITIONS(ARRAY('red', NULL, 'green'), 'blue'); array_positions ----------------- (1 row)