Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що робить NOT IN?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)`NOT IN` - оператор, що виключає рядки, значення стовпця яких входить до вказаного списку - протилежний до `IN`, наприклад `WHERE department NOT IN ('HR', 'Finance', 'Legal');` обере всіх, окрім співробітників цих відділів. **Ключове:** якщо в списку `NOT IN` (зокрема, коли він побудований підзапитом) трапляється `NULL`, результат може виявитися порожнім, бо SQL не знає, чи вважати `NULL` збігом - тому варто виключати `NULL` із підзапиту заздалегідь.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення`NOT IN` - це оператор, який **виключає** рядки, якщо значення стовпця входить до вказаного списку. Він протилежний до `IN`. ### Як працює `NOT IN` перевіряє, що значення **не збігається з жодним** елементом зі списку. Якщо хоча б один збіг знайдено - рядок виключається з результату. ```sql SELECT * FROM employees WHERE department NOT IN ('HR', 'Finance', 'Legal'); ``` Цей запит обере всіх співробітників, **окрім** тих, хто працює у відділах HR, Finance чи Legal. ### Те саме без `NOT IN` Без нього довелося б писати: ```sql WHERE department <> 'HR' AND department <> 'Finance' AND department <> 'Legal' ``` `NOT IN` робить те саме, але простіше і читабельніше. ### Можна використовувати з підзапитом ```sql SELECT * FROM customers WHERE id NOT IN (SELECT customer_id FROM blacklist); ``` Обере всіх клієнтів, **яких немає** в таблиці `blacklist`. ### Важливо Якщо у списку `NOT IN` трапляється значення `NULL`, результат може виявитися **порожнім**, тому що SQL не знає, чи вважати `NULL` збігом. Щоб уникнути цього, перед фільтрацією варто виключити `NULL` з підзапиту: ```sql WHERE id NOT IN (SELECT customer_id FROM blacklist WHERE customer_id IS NOT NULL); ``` **Підсумок:** `NOT IN` - фільтрує дані, **прибираючи всі рядки, значення яких входять до вказаного списку**. Використовується для винятків і "чорних списків" у запитах.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.