Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi JSON_EXTRACT_ARRAY_ELEMENT_TEXT
catatan
JSON_PARSE dan fungsi terkaitnya mengurai nilai JSON sebagai SUPER, yang diurai oleh Amazon Redshift lebih efisien daripada VARCHAR.
Alih-alih menggunakan JSON_EXTRACT_ARRAY_ELEMENT_TEXT, kami sarankan Anda mengurai string JSON menggunakan untuk mendapatkan nilai SUPER. Fungsi JSON_PARSE Kemudian, kueri elemen yang Anda inginkan menggunakan indeks array, menggunakan value[element position] sintaks. Untuk informasi lebih lanjut tentang kueri elemen array dalam nilai SUPER, buka. Mengkueri data semi-terstruktur
Fungsi JSON_EXTRACT_ARRAY_ELEMENT_TEXT mengembalikan elemen array JSON di larik terluar string JSON, menggunakan indeks berbasis nol. Elemen pertama dalam array berada di posisi 0. Jika indeks negatif atau di luar batas, JSON_EXTRACT_ARRAY_ELEMENT_TEXT kembali. NULL Jika argumen null_if_invalid disetel ke TRUE dan string JSON tidak valid, fungsi kembali alih- NULL alih mengembalikan kesalahan.
Untuk informasi selengkapnya, lihat Fungsi JSON.
Sintaks
JSON_EXTRACT_ARRAY_ELEMENT_TEXT('json string', pos [, null_if_invalid ] )
Argumen
- json_string
-
String JSON yang diformat dengan benar.
- pos
-
Sebuah
INTEGERmewakili indeks elemen array yang akan dikembalikan, menggunakan indeks array berbasis nol.
- null_if_invalid
-
(Opsional)
BOOLEANNilai yang menentukan apakah akan dikembalikanNULLjika string JSON input tidak valid alih-alih mengembalikan kesalahan. Untuk mengembalikanNULLjika JSON tidak valid, tentukantrue(t). Untuk mengembalikan kesalahan jika JSON tidak valid, tentukanfalse(f). Nilai default-nyafalse.
Jenis pengembalian
VARCHAR-
Sebuah
VARCHARstring yang mewakili elemen array JSON yang direferensikan oleh pos.
Contoh
Untuk mengembalikan elemen array pada posisi 2, yang merupakan elemen ketiga dari indeks array berbasis nol, gunakan contoh berikut.
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('[111,112,113]', 2);+---------------------------------+ | json_extract_array_element_text | +---------------------------------+ | 113 | +---------------------------------+
Untuk mengembalikan kesalahan karena JSON tidak valid, gunakan contoh berikut.
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('["a",["b",1,["c",2,3,null,]]]',1);ERROR: invalid json array object ["a",["b",1,["c",2,3,null,]]]
Untuk menyet el null_if_invalid ke true, sehingga pernyataan kembali alih- NULL alih mengembalikan kesalahan untuk JSON yang tidak valid, gunakan contoh berikut.
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('["a",["b",1,["c",2,3,null,]]]',1,true);+---------------------------------+ | json_extract_array_element_text | +---------------------------------+ | NULL | +---------------------------------+
Pertimbangkan contoh pernyataan berikut. Jika string JSON yang disediakan atau indeksnya adalah NULL, JSON_EXTRACT_ARRAY_ELEMENT_TEXT mengembalikan NULL terlepas dari nilai parameter lainnya.
--Statement where json_string is NULL. SELECT json_extract_array_element_text(NULL, 0)json_extract_array_element_text --------------------------------- NULL--Statement where pos is NULL and json_string is invalid JSON. SELECT json_extract_array_element_text('invalid_json', NULL);json_extract_array_element_text --------------------------------- NULL--Statement where json_string is NULL and null_if_invalid is FALSE. SELECT json_extract_array_element_text(NULL, 0, FALSE);json_extract_array_element_text --------------------------------- NULL
Pertimbangkan contoh pernyataan berikut. Ketika null_if_invalid adalah TRUE, JSON_EXTRACT_ARRA Y_ELEMENT_TEXT mengembalikan NULL ketika json_string adalah JSON tidak valid. Jika null_if_invalid adalah FALSE atau tidak disetel, fungsi mengembalikan kesalahan ketika json_string tidak valid.
--Statement with invalid JSON where null_if_invalid is TRUE. SELECT json_extract_array_element_text('invalid_json', 0, TRUE);json_extract_array_element_text --------------------------------- NULL--Statement with invalid JSON where null_if_invalid is FALSE. SELECT json_extract_array_element_text('invalid_json', 0);ERROR: JSON parsing error
Pertimbangkan contoh berikut, di mana json_string adalah JSON yang valid, dan pos mengacu pada nilai JSON. null Dalam hal ini, JSON_EXTRACT_ARRAY_ELEMENT_TEXT mengembalikan NULL, terlepas dari nilai null_if_invalid.
--Statement selecting a null value. SELECT json_extract_array_element_text('[null]', 0); json_extract_array_element_text ---------------------------------- NULL