Оператор IN використовується з оператором WHERE для зіставлення значень у списку. Наприклад:
|
1 2 3 |
SELECT first_name, country FROM Customers WHERE country IN ('USA', 'UK'); |
Тут ми витягуємо рядки, якщо країна (country) — USA або UK.

Оператор IN також можна використовувати для вибору рядків, які містять певне значення. Наприклад:
|
1 2 3 |
SELECT first_name, country FROM Customers WHERE 'USA' IN (country); |
Тут ми витягуємо рядки, в яких в полі country знаходиться значення USA.

Оператор NOT IN в SQL
Оператор NOT IN використовується для виключення рядків, що відповідають вказаним значенням у списку. Він повертає всі рядки, крім виключених. Наприклад:
|
1 2 3 |
SELECT first_name, country FROM Customers WHERE country NOT IN ('UK', 'UAE'); |
Тут ми витягуємо всі рядки, в яких в полі country немає значення UK та UAE.

Примітка: Робота оператора IN прямо протилежна роботі оператора NOT. Дізнатися більше ви можете з уроку “Оператори AND, OR та NOT в SQL”.
Оператор IN з повторюваними значеннями в SQL
Оператор IN ігнорує повторювані значення (дублі) у списку. Наприклад, наступний код:
|
1 2 3 |
SELECT first_name, country FROM Customers WHERE country IN ('USA', 'UK', 'USA'); |
рівнозначний
|
1 2 3 |
SELECT first_name, country FROM Customers WHERE country IN ('USA', 'UK'); |
Оператор IN з підзапитом в SQL
Припустимо, нам потрібна інформація про клієнтів, які розмістили замовлення. Ми можемо це зробити за допомогою наступного підзапиту:
|
1 2 3 4 5 6 |
SELECT customer_id, first_name FROM Customers WHERE customer_id IN ( SELECT customer_id FROM Orders ); |
У нас є 2 таблиці — Customers (Клієнти) та Orders (Замовлення). Ми вибираємо ідентифікатор клієнта (customer_id) та його ім’я (first_name) з таблиці Customers, лише якщо той самий ідентифікатор також є в таблиці Orders.
