MINUS ОПЕРАТОР

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

Описание

Oracle оператор MINUS используется для возврата всех строк первого запроса SELECT, не возвращаемых вторым SELECT. Каждый запрос SELECT будет определять набор данных. Оператор MINUS возвращает все записи из первого набора данных, а затем из результатов удалит все записи из второго набора данных.
Minus Oracle PL/SQL

Пояснение: Запрос MINUS вернет записи в серой затененной области. Эти записи, которые существуют в SELECT 1, а не в SELECT 2.

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

Синтаксис

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

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

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

expression1, expression2, ... expression_n

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

tables

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

WHERE conditions

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

Примечание

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

Пример с одним полем

Ниже приведен пример Oracle оператора MINUS, который возвращает одно поле с тем же типом данных:

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

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

Ниже приведен пример оператора MINUS, который использует ORDER BY:

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

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