Search notes:

Oracle SQL: MINUS

minus is a set operator.
create table tq84_minus_1 (
  val  number
);

create table tq84_minus_2 (
  val  number
);


insert into tq84_minus_1 values (1);
insert into tq84_minus_1 values (2);
insert into tq84_minus_1 values (2);
insert into tq84_minus_1 values (3);
insert into tq84_minus_1 values (3);
insert into tq84_minus_1 values (3);

insert into tq84_minus_2 values (2);


--   Note,
--     each distinct values is returned once only,
--     although inserted multiple times into tq84_minus_1
--    (especially the value 3).
--
select * from tq84_minus_1 minus
select * from tq84_minus_2;
--
--           VAL
--    ----------
--             1
--             3
--

drop table tq84_minus_1 purge;
drop table tq84_minus_2 purge;
Github repository Oracle-Patterns, path: /SQL/select/set_operators/minus_01.sql

Misc

The except keyword has the same semantics as the minus keyword.
Oracle 21c introduced minus all (and except all).

See also

The plan operation MINUS.
Using distinct in a view prevents the view from being updatable.
Set operators

Index