UNION ALL ОПЕРАТОР

В этом учебном материале вы узнаете, как использовать Oracle оператор UNION ALL с синтаксисом и примерами.

Описание

Oracle оператор UNION ALL используется для объединения наборов результатов 2-х или более SELECT запросов. Он возвращает все строки из запроса и не удаляет повторяющиеся строки между различными запросами SELECT.

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

Синтаксис

Синтаксис оператора UNION ALL в Oracle/PLSQL:

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION ALL
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

Параметры или аргументы

expression1, expression2, ... expression_n

Столбцы или расчеты, которые вы хотите получить.

tables

Таблицы, из которых вы хотите получить записи.

WHERE conditions

Необязательный. Условия, которые должны быть выполнены для выбранных записей.

Примечание

В обоих запросах SELECT должно быть одинаковое количество столбцов.

Пример выборки одного поля

Ниже приведен пример Oracle оператора UNION ALL, который возвращает одно поле из множества SELECT (и оба поля имеют один и тот же тип данных):

Этот пример Oracle оператора UNION ALL вернет множество записей supplier_id в результирующем наборе, т.к. supplier_id находится в обоих таблицах suppliers и orders. Oracle оператор UNION ALL не удалит дубликаты. Если вы хотите, чтобы дубликаты были удалены, попробуйте использовать оператор Oracle UNION.

Пример использования ORDER BY

Oracle оператор UNION ALL может использовать ORDER BY, чтобы упорядочить результаты запроса.

Например:

В этом Oracle операторе UNION ALL, так как имена столбцов в двух запросах SELECT отличаются, то в операторе ORDER BY выгоднее ссылаться на положение столбцов в результирующем наборе. В этом примере, мы отсортировали результаты по supplier_name / company_name в порядке возрастания, как это обозначено в ORDER BY 2.

Поля supplier_name / company_name находятся в позиции # 2 в результирующем наборе.