View a markdown version of this page

Dalam kondisi - Amazon Redshift

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 yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Dalam kondisi

Kondisi IN menguji nilai keanggotaan dalam satu set nilai atau dalam subkueri.

Sintaksis

expression [ NOT ] IN (expr_list | table_subquery)

Argumen

ekspresi

Ekspresi numerik, karakter, atau datetime yang dievaluasi terhadap expr_list atau table_subquery dan harus kompatibel dengan tipe data daftar atau subkueri tersebut.

expr_list

Satu atau lebih ekspresi dipisahkan koma, atau satu atau lebih kumpulan ekspresi dipisahkan koma yang dibatasi oleh tanda kurung.

tabel_subquery

Suatu subkueri yang mengevaluasi ke tabel dengan satu atau lebih baris, tetapi terbatas hanya pada satu kolom dalam daftar pilihannya.

DI | TIDAK MASUK

IN mengembalikan true jika ekspresi adalah anggota dari daftar ekspresi atau query. NOT IN mengembalikan true jika ekspresi bukan anggota. IN dan NOT IN mengembalikan NULL dan tidak ada baris yang dikembalikan dalam kasus berikut: Jika ekspresi menghasilkan null; atau jika tidak ada nilai expr_list atau table_subquery yang cocok dan setidaknya satu dari baris perbandingan ini menghasilkan null.

Contoh

Kondisi berikut hanya berlaku untuk nilai-nilai yang tercantum:

qtysold in (2, 4, 5) date.day in ('Mon', 'Tues') date.month not in ('Oct', 'Nov', 'Dec')

Optimasi untuk Daftar IN Besar

Untuk mengoptimalkan kinerja kueri, daftar IN yang mencakup lebih dari 10 nilai dievaluasi secara internal sebagai larik skalar. Daftar IN dengan nilai kurang dari 10 dievaluasi sebagai serangkaian predikat OR. Optimasi ini didukung untuk tipe data SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION, BOOLEAN, CHAR, VARCHAR, DATE, TIMESTAMP, dan TIMESTAMPTZ.

Lihatlah output EXPLAIN untuk kueri untuk melihat efek dari pengoptimalan ini. Contoh:

explain select * from sales QUERY PLAN -------------------------------------------------------------------- XN Seq Scan on sales (cost=0.00..6035.96 rows=86228 width=53) Filter: (salesid = ANY ('{1,2,3,4,5,6,7,8,9,10,11}'::integer[])) (2 rows)