Query dengan Klausa IN

Saat kita melakukan query, ada kalanya kita igin menampilkan data dengan kriteria tertentu. Misalnya kita ingin menampilkan nama-nama karyawan yang bekerja sebagai Sales Manager atau IT Pogrammer (memiliki job_id = SA_MAN atau IT_PROG), maka kita gunakan query dengan klausa WHERE seperti pada gambar berikut ini:

Perhatikan bahwa dalam klausa WHERE digunakan operator OR karena kita ingin menampilkan data pada tabel employees yang kolom job_id nya bernilai ‘SA_MAN’ atau ‘IT_PROG’ (ada 2 nilai yang ingin dicari). Sebetulnya kita juga bisa menggunakan query dengan klausa IN seperti pada contoh berikut ini:

Hasilnya sama saja kan? Nah, klausa IN sangat berguna kalau kita mencari nilai yang banyak. MIsalnya kita ingin menampilkan nama-nama karyawan yang bekerja sebagai Sales Manager atau IT Programmer atau Human Resource Representative atau Marketing Manager. Ketimbang menuliskan operator OR berulang-ulang di dalam kalusa WHERE seperti ini:

akan lebih praktis jika kita menggunakan satu buah klausa IN seperti contoh berikut ini:

Jauh lebih praktis kan? Sayangnya klausa IN juga memiliki batasan, yaitu jumlah nilai yang ditampung dalam sebuah klausa IN adalah maksimal 1000 buah (tapi siapa juga ya yang bikin query dengan lebih dari 1000 buah nilai di dalam klausa IN? mungkin hanya orang-orang kurang kerjaan seperti saya ini :lol:).

Iseng, saya membuat query ini:

select first_name, job_id from employees
where job_id in ('SA_MAN','IT_PROG','HR_REP','MK_MAN',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J',
'A','B','C','D','E','F','G','H','I','J');

dan ini dia hasil nya jika query tersebut dieksekusi:

Perhatikan bahwa Oracle SQLPlus menampilkan eror dengan kode ORA-01795. Hal ini menunjukkan bahwa jumlah nilai yang kita masukkan di dalam klausa IN sudah lebih dari 1000 buah nilai. Solusinya mudah, gunakan saja nested query di dalam klausa IN. Kapan-kapan klo lagi kurang kerjaan saya akan tulis juga tentang nested query deh🙂

Oke, semoga bermanfaat🙂

Catatan:

  1. Contoh-contoh di atas dapat dicoba sendiri dengan menggunakan schema HR yang sudah terinstal di Oracle masing-masing
  2. Untuk mendapatkan efek negasi dari klausa IN, kita bisa menggunakan klausa NOT IN. Nanti akan ditampilkan semua nilai yang ada kecuali yang dituliskan dalam klausa NOT IN tersebut.

One thought on “Query dengan Klausa IN

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s