Работа со множествами (UNION, EXCEPT, INTERSECT, IN, NOT IN)

Работа с множествами в SQL включает в себя операции объединения, исключения, пересечения, а также проверки наличия значений в подзапросах. Рассмотрим основные операции:

UNION

Операция UNION объединяет результаты двух или более запросов в один результат. Она убирает дублирующиеся строки.

SELECT column_name FROM table1
UNION
SELECT column_name FROM table2;

Если нужно сохранить дубликаты, используйте UNION ALL:

SELECT column_name FROM table1
UNION ALL
SELECT column_name FROM table2;

EXCEPT

Операция EXCEPT возвращает все строки из первого запроса, которых нет во втором запросе.

SELECT column_name FROM table1
EXCEPT
SELECT column_name FROM table2;

INTERSECT

Операция INTERSECT возвращает строки, которые присутствуют в обоих запросах.

SELECT column_name FROM table1
INTERSECT
SELECT column_name FROM table2;

IN

Оператор IN проверяет наличие значения в списке или в результате подзапроса.

SELECT column_name FROM table
WHERE column_name IN (value1, value2, value3);

Пример с подзапросом:

SELECT column_name FROM table1
WHERE column_name IN (SELECT column_name FROM table2);

NOT IN

Оператор NOT IN проверяет отсутствие значения в списке или в результате подзапроса.

SELECT column_name FROM table
WHERE column_name NOT IN (value1, value2, value3);

Пример с подзапросом:

SELECT column_name FROM table1
WHERE column_name NOT IN (SELECT column_name FROM table2);

Эти операции позволяют эффективно работать с множествами данных в SQL и реализовывать различные логические операции для обработки данных.

Last updated