Команда intersect

Команда UNION ALL

Команда UNION ALL используется для такого объединения результатов двух операторов SELECT, в которое включаются и повторения строк. Правила использования команды UNION ALL такие же, как и правила использования UNION.

Синтаксис оператора с использованием команды UNION ALL должен быть следующим.

SELECT столбец1 [, столбец2 ] FROM таблица1 [, габлица2 ] [ WHERE ]

UNION ALL

SELECT столбец1 [, столбец2 ] FROM таблица1 [, таблица2 ] [ WHERE ]

Рассмотрим пример.

SELECT EMP_ID FROM EMPLOYEE_TBL

UNION ALL

SELECT EMP_ID FROM EMPLOYEE_PAY_TBL;

В результате табельные номера, имеющиеся в обеих таблицах, отобразятся дважды.

Следующий составной запрос отличается от составного запроса из предыдущего раздела только использованием команды UNION ALL вместо UNION.

SELECT PROD_DESC FROM PRODUCTS_TBL

UNION ALL

SELECT PROD_DESC FROM PRODUCTS_TMP;

PROD__DESC

КОСТЮМ ВЕДЬМЫ

ПЛАСТИКОВЫЕ ТЫКВЫ

ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ

ФОНАРИ

КОСТЮМЫ В АССОРТИМЕНТЕ

СЛАДКАЯ КУКУРУЗА

ТЫКВЕННЫЕ КОНФЕТЫ

ПЛАСТИКОВЫЕ ПАУКИ

МАСКИ В АССОРТИМЕНТЕ

ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ

ПОЛОЧКА ИЗ ДУБА

КОСТЮМ ВЕДЬМЫ

ПЛАСТИКОВЫЕ ТЫКВЫ

ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ

ФОНАРИ

КОСТЮМЫ В АССОРТИМЕНТЕ

СЛАДКАЯ КУКУРУЗА

ТЫКВЕННЫЕ КОНФЕТЫ

ПЛАСТИКОВЫЕ ПАУКИ

МАСКИ В АССОРТИМЕНТЕ

Обратите внимание на то, что возвращены 20 строк (11+9), поскольку команда UNION ALL предполагает включение в вывод повторения строк.

Команда INTERSECT используется для такого комбинирования результатов двух операторов SELECT, при котором в вывод попадают только те строки из первого запроса, для которых имеются идентичные строки из второго запроса Правила использования команды INTERSECT аналогичны правилам использования команды UNION.

Синтаксис оператора с использованием команды INTERSECT должен быть следующим.

SELECT столбец1 [, столбец2 ] FROM таблица1 [, таблица2 ] [ WHERE ]

INTERSECT

SELECT столбец1 [, столбец2 ] FROM таблица1 [, таблица2 ] [ WHERE ]

Рассмотрим пример.

SELECT CUST_ID FROM CUSTOMER_TBL

INTERSECT

SELECT CUST_ID FROM ORDERS_TBL;

В результате отобразятся номера кодов только тех заказчиков, которые разместили заказы.

Следующий составной запрос аналогичен предыдущим, но в нем используется команда INTERSECT.

SELECT PROD_DESC FROM PRODUCTS_TBL

INTERSECT

SELECT PROD_DESC FROM PRODUCTS_TMP;

PROD_DESC

ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ

КОСТЮМ ВЕДЬМЫ

КОСТЮМЫ В АССОРТИМЕНТЕ

МАСКИ В АССОРТИМЕНТЕ

ПЛАСТИКОВЫЕ ПАУКИ

ПЛАСТИКОВЫЕ ТЫКВЫ

ПОЛОЧКА ИЗ ДУБА

СЛАДКАЯ КУКУРУЗА

ТЫКВЕННЫЕ КОНФЕТЫ

Здесь снова возвращены только 9 строк, поскольку 9 строк идентичны в выводе обоих запросов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: