IN di SQL

Mencocokkan kolom dengan daftar nilai. Lebih ringkas daripada menulis banyak OR.

Penjelasan sederhana

IN mencocokkan kolom dengan sebuah daftar nilai. kota IN ('Bandung', 'Surabaya') artinya kotanya Bandung atau Surabaya. Hasilnya sama dengan menulis beberapa OR, tapi jauh lebih ringkas.

Isi daftarnya bisa ditulis langsung, atau diambil dari query lain (subquery), misalnya "pelanggan yang pernah membeli produk X".

Sintaks

WHERE kolom IN (nilai1, nilai2, ...);
BagianKeterangan
(nilai1, nilai2, ...)Daftar nilai yang dicari. Bisa juga berupa subquery.

Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.

Contoh IN

Data contoh: karyawan

Tabel karyawan

idnamadept_idkotagajitgl_masukatasan_id
1 Andi Pratama 3 Bandung 12500000 2019-03-11 NULL
2 Bunga Lestari 1 Jakarta 9800000 2020-07-01 NULL
3 Candra Wijaya 3 Bandung 8200000 2021-02-15 1
4 Dewi Anggraini 2 Jakarta 7500000 2022-05-09 6
5 Eko Saputra 1 Jakarta 6900000 2023-01-16 2
6 Fajar Nugroho 2 Surabaya 11000000 2018-09-03 NULL
7 Gita Permata 3 Jakarta 8200000 2023-08-21 1
8 Hendra Gunawan NULL Medan 5500000 2024-04-02 NULL
query.sql
SELECT nama, kota
FROM karyawan
WHERE kota IN ('Bandung', 'Surabaya');
>_ Jalankan & ubah query ini di browser

Hasil 3 baris

namakota
Andi Pratama Bandung
Candra Wijaya Bandung
Fajar Nugroho Surabaya

Sama dengan WHERE kota = 'Bandung' OR kota = 'Surabaya'.

Cara kerjanya, langkah demi langkah

  1. FROM karyawan: 8 baris diambil.
  2. Untuk setiap baris, kotanya dicek apakah ada di daftar (Bandung, Surabaya).
  3. Yang cocok: Andi dan Candra dari Bandung, serta Fajar dari Surabaya.

Dipakai untuk apa di kantor?

  • Menyaring beberapa cabang atau kategori sekaligus.
  • Mengambil data untuk daftar ID tertentu yang diminta tim lain.

Kesalahan yang sering terjadi

  • Lupa kutip untuk nilai teks di dalam daftar.
  • Memakai NOT IN dengan daftar yang berisi NULL. Hasilnya bisa kosong sama sekali. Untuk subquery, NOT EXISTS lebih aman.
Progres bab Filter Data 0/8 dipelajari
Lanjut: BETWEEN

Belajar SQL bareng mentor

Hafal sintaks itu mudah. Menjawab pertanyaan bisnis, itu skill.

Private Class Python & SQL untuk Data: dari query dasar sampai JOIN dan studi kasus kerja, dengan kurikulum dan jadwal yang menyesuaikan kamu.

Lihat Private Class