Fungsi ARRAY_POSITION - Amazon Redshift

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_POSITION

Mengembalikan posisi (indeks) dari kejadian pertama dari elemen tertentu dalam array. Indeks berbasis 0, di mana 0 menunjukkan elemen pertama, 1 menunjukkan elemen kedua, dan seterusnya. Mengembalikan -1 jika elemen tidak ditemukan dalam array.

Fungsi mengembalikan hanya posisi kejadian pertama. Untuk menemukan semua kejadian, pertimbangkan untuk menggunakan Fungsi ARRAY_POSITIONS fungsi.

Sintaksis

ARRAY_POSITION( 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: Mencari NULL mengembalikan NULL. Jika array berisi nilai NULL dan tidak ada kecocokan ditemukan untuk nilai pencarian non-NULL, mengembalikan NULL.

  • null_match = TRUE: diperlakukan sebagai elemen NULLs yang valid dan dapat dicari. Jika array berisi nilai NULL dan tidak ada kecocokan ditemukan untuk nilai pencarian non-NULL, ia mengembalikan -1.

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_POSITION mengembalikan tipe INT.

Contoh

Contoh berikut menunjukkan fungsi ARRAY_POSITION.

SELECT ARRAY_POSITION(ARRAY('red', 'green'), 'red'); array_position ---------------- 0 (1 row) SELECT ARRAY_POSITION(ARRAY(1, 2, 3), 4); array_position ---------------- -1 (1 row) -- only the position of the first occurrence is returned SELECT ARRAY_POSITION(ARRAY('red', 'green', 'red'), 'red'); array_position ---------------- 0 (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_POSITION(ARRAY('red', NULL, 'green'), NULL); array_position ---------------- 1 (1 row) -- The array can contain NULLs SELECT ARRAY_POSITION(ARRAY('red', NULL, 'green'), 'blue', TRUE); array_position ---------------- -1 (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_POSITION(ARRAY('red', 'green'), NULL, FALSE); array_position ---------------- (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_POSITION(ARRAY('red', NULL, 'green'), 'green'); array_position ---------------- 2 (1 row) -- The array contains NULL but no match is found SELECT ARRAY_POSITION(ARRAY('red', NULL, 'green'), 'blue'); array_position ---------------- (1 row)

Lihat juga