SQL Except: What It Is and How to Use It

SQL оператор EXCEPT используется для получения набора результатов из одной таблицы, которые не присутствуют в другой таблице. Он сравнивает два набора результатов и возвращает только уникальные строки из первого набора, которые не присутствуют во втором наборе. Оператор EXCEPT относится к операторам множественной выборки в SQL, таким как UNION, INTERSECT.

Например, у нас есть два набора результатов из двух различных таблиц со следующей структурой и содержимым:

Таблица первого набора:

sql
CREATE TABLE table1 (
   id INT PRIMARY KEY,
   name VARCHAR(50)
);
INSERT INTO table1 VALUES (1, 'John');
INSERT INTO table1 VALUES (2, 'Mary');
INSERT INTO table1 VALUES (3, 'David');

Таблица второго набора:

sql
CREATE TABLE table2 (
   id INT PRIMARY KEY,
   name VARCHAR(50)
);
INSERT INTO table2 VALUES (1, 'John');
INSERT INTO table2 VALUES (2, 'Mary');

Теперь мы хотим выбрать из первого набора только те строки, которые не присутствуют во втором наборе (отфильтровать общие строки):

sql
SELECT id, name FROM table1
EXCEPT
SELECT id, name FROM table2;

Результат будет иметь вид:


3, David

То есть, в результат выведется только запись с id=3 и name='David', так как она не содержится в таблице table2.

Можно также использовать оператор минус (-) вместо оператора EXCEPT:

sql
SELECT id, name FROM table1
WHERE id NOT IN (SELECT id FROM table2);

Результат будет таким же, как и с использованием оператора EXCEPT.

Оператор EXCEPT может также использоваться с несколькими таблицами:

sql
SELECT id, name FROM table1
EXCEPT
SELECT id, name FROM table2
EXCEPT
SELECT id, name FROM table3;

В этом случае результат будет содержать только те записи, которые не содержатся ни в одной из таблиц.

В целом, оператор EXCEPT полезен для фильтрации наборов данных и позволяет упростить написание запросов в SQL.

Похожие вопросы на: "sql except "

Heroku – облачная платформа для управления приложениями
Join Inner - сеть, которая поможет вам достичь успеха
Stopwatch - простой способ замерить время
Как набрать знак градуса Цельсия на клавиатуре?
Ошибка HTTP 503: Сервис временно недоступен
Как обновить pip? Простой шаг за шагом гид
Oracle Decode: Your Ultimate Guide to Data Manipulation in Oracle Databases
Генерация случайных чисел в заданном диапазоне (с помощью функции rand)
Java isDigit: методы проверки числа в строковом формате
Python генератор словарей