Operator MINUS wyświetla w tabeli wynikowej tylko te wartości, które są w tabeli pierwszej bez wspólnych elementów drugiej tabeli.
Skorzystamy z bezpłatnej bazy Oracle HR dostępnej tutaj:
http://www.oracle.com/technetwork/database/express-edition/downloads/index.html
Operator MINUS
W poprzednim wpisie wyświetliliśmy wszystkie wartości wspólne dla tabel DEPARTMENTS i JOB_HISTORY. Uzyskaliśmy wtedy takie wartości:
Teraz stosując operator MINUS wyświetlimy wartości które są w tabeli JOB_HISTORY a nie ma ich w tabeli DEPARTMENTS.
SELECT DEPARTMENT_ID
FROM JOB_HISTORY
MINUS
SELECT DEPARTMENT_ID
FROM DEPARTMENTS;
Uzyskaliśmy zerową ilość rekordów ponieważ wszystkie DEPARTMENT_ID, które są w tabeli JOB_HISTORY były również w tabeli DEPARTMENTS.
Robimy więc odwrotnie. Szukamy wszystkich DEPARTMENT_ID, które nie występują w JOB_HISTORY a występują w tabeli DEPARTMENT.
SELECT DEPARTMENT_ID
FROM DEPARTMENTS
MINUS
SELECT DEPARTMENT_ID
FROM JOB_HISTORY;
Uzyskujemy wszystkie DEPARTMENT_ID, których nie ma w JOB_HISTORY.


