Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

SQL PILIH DI

SQL SELECT IN adalah operator logika dalam Structured Query Language. Ini digunakan dalam kueri SQL untuk mengurangi penggunaan beberapa operator 'ATAU'. s

Operator IN di SQL juga memungkinkan untuk dengan mudah menguji kondisi yang cocok dengan nilai apa pun dalam daftar nilai. Ini mengurangi jumlah operator ATAU dalam kueri SQL.

Sintaks operator IN di SQL:

SELECT COLUMNNAME FROM TABLENAME WHERE COLUMNNAME IN (VALUE1, VALUE2);

Sintaks Subquery operator IN di SQL:

SELECT COLUMNNAME FROM TABLENAME WHERE COLUMNNAME IN (SELECT STATEMENT); 

Dalam sintaks di atas, kita juga dapat menggunakan operator IN dengan subquery.

Mari kita pahami konsep SQL SELECT IN dengan bantuan contoh.

Perhatikan tabel berikut yang memiliki catatan berikut:

Tabel 1:Karyawan

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH BAIK 60500 MUMBAI UJI 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGRWAL 60000 DELHI ORACLE 1
5001 ARKIT SHARMA 55500 DELHI UJI 4

Tabel 2:Manajer

Pengelola nama_manajer manajer_departemen
1 Snehdeep Kaur ORACLE
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Anupam Mishra UJI
5 Akash Kadam C#

Contoh 1: Tulis kueri untuk mengambil id karyawan, nama depan, nama belakang, dan Kota dari tabel karyawan di mana Kota menyertakan salah satu daftarnya adalah Mumbai, Pune, dan Delhi dalam tabel.

SELECT EMPLOYEEID, FIRST_NAME, LAST_NAME, CITY FROM EMPLOYEES WHERE CITY IN ('MUMBAI', 'PUNE', 'DELHI');

Dalam pernyataan di atas, kami telah mengambil id karyawan, nama depan dan belakang, dan Kota dari tabel karyawan, di mana Kota menyertakan salah satu nama kota, Mumbai, Pune, dan Delhi. Semua nama kota ini dilewatkan sebagai parameter di operator IN sebagai nilai. Tabel akan menampilkan semua record yang kota karyawannya cocok dengan daftar kota parameter operator IN.

Keluaran:

KARYAWAN FIRST_NAME LAST_NAME KOTA
1001 VAIBHAVI MISHRA PUNE
2002 BHAVESH JAIN PUNE
2003 RUCHIKA JAIN MUMBAI
3001 PRANOTI SHENDE PUNE
3003 DEEPAM JAUHARI MUMBAI
4001 RAJESH BAIK MUMBAI
4003 RUCHIKA AGRWAL DELHI
5001 ARKIT SHARMA DELHI

Ini hanya menunjukkan delapan karyawan yang nama kotanya cocok dengan daftar parameter ekspresi operator IN.

Contoh 2: Tulis kueri untuk mengambil id karyawan, nama depan, nama belakang, gaji, dan Departemen dari tabel karyawan di mana gaji termasuk salah satu daftarnya adalah 50500, 55500, dan 65500 dalam tabel.

SELECT EMPLOYEEID, FIRST_NAME, LAST_NAME, SALARY, DEPARTMENT FROM EMPLOYEES WHERE SALARY IN (50500, 55500, 65500);

Dalam pernyataan di atas, kami telah mengambil id karyawan, nama depan dan belakang, gaji, dan Departemen dari tabel karyawan di mana gaji termasuk salah satu gaji adalah 50500, 55500, dan 65500. Semua gaji ini dilewatkan sebagai parameter di operator IN sebagai nilai. Tabel akan menampilkan semua record yang gaji karyawannya cocok dengan daftar gaji parameter operator IN.

Keluaran:

KARYAWAN FIRST_NAME LAST_NAME GAJI DEPARTEMEN
1001 VAIBHAVI MISHRA 65500 ORACLE
1003 NIKHIL VANI 50500 FMW
2001 PRACHI SHARMA 55500 ORACLE
2002 BHAVESH JAIN 65500 FMW
3001 PRANOTI SHENDE 55500 JAVA
3002 ANUJA WANRE 50500 FMW
5001 ARKIT SHARMA 55500 UJI

Ini menunjukkan hanya tujuh karyawan yang gajinya sesuai dengan daftar parameter ekspresi operator IN.

Contoh 3: Tulis kueri untuk mengambil id karyawan, nama depan, nama belakang, gaji, dan Kota dari karyawan di mana gaji karyawan lebih besar dari 60000 atau kota karyawan termasuk salah satu daftar kota adalah 'Mumbai', 'Pune' dan, 'Jaipur' dalam tabel.

SELECT EMPLOYEEID, FIRST_NAME, LAST_NAME, SALARY, CITY FROM EMPLOYEES WHERE SALARY > 60000 OR CITY IN ('PUNE', 'MUMBAI', 'JAIPUR');

Dalam pernyataan di atas, kami telah mengambil id karyawan, nama depan, nama belakang, gaji, dan Kota dari tabel karyawan di mana gaji karyawan lebih besar dari 60000 atau kota karyawan termasuk salah satu daftar kota ini adalah 'Mumbai', 'Pune', ' Jaipur'. Pernyataan SELECT klausa WHERE bagian pertama adalah GAJI> 60000 dan bagian terakhir adalah CITY IN ('PUNE', 'MUMBAI', 'JAIPUR'), karena kita menggunakan operator OR hasilnya akan dari kedua kondisi.

Keluaran:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA
1001 VAIBHAVI MISHRA 65500 PUNE
1003 NIKHIL VANI 50500 JAIPUR
2002 BHAVESH JAIN 65500 PUNE
2003 RUCHIKA JAIN 50.000 MUMBAI
3001 PRANOTI SHENDE 55500 PUNE
3002 ANUJA WANRE 50500 JAIPUR
3003 DEEPAM JAUHARI 58500 MUMBAI
4001 RAJESH BAIK 60500 MUMBAI

Ini menunjukkan hanya delapan catatan dari tabel yang gajinya lebih besar dari 60000 atau nama Kota cocok dengan daftar parameter ekspresi operator IN.

Contoh 4: Tulis kueri untuk mengambil id karyawan, Gaji, Kota, dan Departemen dari tabel karyawan di mana departemen karyawan termasuk salah satu daftarnya adalah 'Oracle', 'FMW' dan juga Kota termasuk salah satu daftarnya adalah 'Delhi', 'Noida', 'Pun'.

SELECT EMPLOYEEID, SALARY, CITY, DEPARTMENT FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW') AND CITY IN ('PUNE', 'NOIDA', 'DELHI');

Kami telah mengambil id karyawan, gaji, Kota, dan Departemen dari tabel karyawan dalam pernyataan di atas. Departemen karyawan menyertakan salah satu daftar departemen yang diteruskan ke parameter operator IN. Kota karyawan menyertakan salah satu daftar kota yang diteruskan ke parameter operator IN, dan hasilnya hanya menyertakan detail karyawan yang cocok dengan kedua kondisi tersebut.

Keluaran:

KARYAWAN GAJI KOTA DEPARTEMEN
1001 65500 PUNE ORACLE
2002 65500 PUNE FMW
4003 60000 DELHI ORACLE

Hanya ada tiga catatan dari tabel Karyawan yang kota karyawannya mencakup Pune, Delhi, dan Noida, dan Departemen mencakup Oracle, FMW.

Contoh 5: Tulis kueri untuk mengambil id karyawan, nama depan, nama belakang, gaji, Kota, dan Departemen dari tabel karyawan di mana gaji karyawan lebih besar dari 60000 dan Kota menyertakan salah satu daftar di Pune, Jaipur, Mumbai atau Departemen termasuk salah satu daftar adalah Java, Pengujian, C#.

SELECT EMPLOYEEID, FIRST_NAME, LAST_NAME, SALARY, CITY, DEPARTMENT FROM EMPLOYEES WHERE SALARY > 60000 AND CITY IN ('PUNE', 'MUMBAI', 'JAIPUR') OR DEPARTMENT IN ('JAVA', 'TESTING', 'C#');

Dalam pernyataan di atas, kami telah menggunakan operator OR, operator AND, dan beberapa operator IN dengan pernyataan SELECT untuk mengambil id karyawan, nama depan, nama belakang, gaji, Kota, dan Departemen dari tabel karyawan. Kueri SELECT pertama-tama mengambil catatan karyawan di mana gaji> 60000 DAN Kota DI ('Pune', 'Mumbai', Jaipur), hanya karyawan tersebut. Kedua kondisi tersebut benar, dan pada akhirnya Department IN ('Java', 'Testing', 'C#'), query ini akan mencari di hasil tahap pertama bahwa catatan karyawan yang kami ambil memiliki Departemen salah satu daftar yang kami lewati ke IN operator dan juga pergi untuk sisa catatan dalam tabel jika ada catatan yang ditemukan memiliki nama departemen kami melewati parameter operator IN catatan yang akan ditambahkan ke hasil.

Keluaran:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE
1002 VAIBHAV SHARMA 60000 NOIDA C#
2002 BHAVESH JAIN 65500 PUNE FMW
2003 RUCHIKA JAIN 50.000 MUMBAI C#
3001 PRANOTI SHENDE 55500 PUNE JAVA
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA
4001 RAJESH BAIK 60500 MUMBAI UJI
4002 ASHWINI BAGHAT 54500 NOIDA JAVA
5001 ARKIT SHARMA 55500 DELHI UJI

Hanya ada 9 record karyawan yang gajinya lebih besar dari 60000. City termasuk salah satu daftar yang kami berikan sebagai parameter ke operator City IN atau Departemen termasuk salah satu daftar yang kami berikan ke operator Department IN.

Contoh 6: Tulis sub-kueri untuk mengambil detail karyawan dari tabel karyawan di mana managerid lebih besar dari 2 dari tabel manajer.

SELECT * FROM EMPLOYEES WHERE MANAGERID IN (SELECT MANAGERID FROM MANAGER WHERE MANAGERID > 2); 

Dalam pernyataan di atas, subquery Pertama akan dieksekusi SELECT MANAGERID FROM MANAGER WHERE MANAGERID> 2; outputnya akan menjadi manager id yang lebih besar dari 2 pass sebagai parameter dalam klausa WHERE query utama, dan output akhir akan dari tabel employee dimana employee-manager id menyertakan salah satu daftar yang merupakan output dari sub-query.

Keluaran:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4001 RAJESH BAIK 60500 MUMBAI UJI 4
5001 ARKIT SHARMA 55500 DELHI UJI 4
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5

Hanya ada tujuh record dari tabel karyawan yang id manajernya lebih besar dari 2.

Contoh 7: Tulis sub-kueri untuk mengambil detail karyawan di mana departemen manajer menyertakan salah satu daftarnya adalah oracle, java, dan FMW.

SELECT * FROM EMPLOYEES WHERE MANAGERID IN (SELECT MANAGERID FROM MANAGER WHERE MANAGER_DEPARTMENT IN ('ORACLE', 'FMW', 'JAVA'));

Dalam pernyataan di atas, pertama-tama kita ambil id manajer dari tabel manajer di mana departemen manajer termasuk salah satu daftarnya adalah Oracle, FMW, Java. Kemudian kueri utama akan mengambil detail karyawan dari output sub-kueri.

Keluaran:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
4003 RUCHIKA AGRWAL 60000 DELHI ORACLE 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2002 BHAVESH JAIN 65500 PUNE FMW 2
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3

Contoh 8: Tulis kueri untuk mengambil id karyawan, nama depan, nama belakang, gaji, Kota dari tabel karyawan dengan gaji antara 50000 dan 65000 atau Kota termasuk salah satu daftarnya adalah Pune, Jaipur, dan Mumbai.

SELECT EMPLOYEEID, FIRST_NAME, LAST_NAME, SALARY, CITY FROM EMPLOYEES WHERE SALARY BETWEEN 50000 AND 65000 OR CITY IN ('PUNE', 'MUMBAI', 'JAIPUR');

Dalam pernyataan di atas, kami telah mengambil id karyawan, nama depan, nama belakang, gaji, dan Kota dari tabel karyawan di mana gaji karyawan antara 50000 dan 65000 atau Kota termasuk salah satu daftar adalah Pune, Mumbai, Jaipur.

Keluaran:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA
1001 VAIBHAVI MISHRA 65500 PUNE
1002 VAIBHAV SHARMA 60000 NOIDA
1003 NIKHIL VANI 50500 JAIPUR
2001 PRACHI SHARMA 55500 CHANDIGARH
2002 BHAVESH JAIN 65500 PUNE
2003 RUCHIKA JAIN 50.000 MUMBAI
3001 PRANOTI SHENDE 55500 PUNE
3002 ANUJA WANRE 50500 JAIPUR
3003 DEEPAM JAUHARI 58500 MUMBAI
4001 RAJESH BAIK 60500 MUMBAI
4002 ASHWINI BAGHAT 54500 NOIDA
4003 RUCHIKA AGRWAL 60000 DELHI
5001 ARKIT SHARMA 55500 DELHI


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Panduan untuk Fungsi PubNub

  2. Mengambil XMLA untuk menganalisis struktur kubus

  3. Alibaba Cloud

  4. Perbaikan Bug R2 2008 yang Merusak RCSI

  5. SQL SELECT untuk Pemula