Możesz użyć union
aby zbudować tabelę miast, a następnie minus
operatora.
select 'Dallas' as city from dual union all
select 'Berlin' as city from dual union all
select 'Cracow' as city from dual union all
select 'Praha' as city from dual
minus
select city from address
Zamiast unii możesz użyć predefiniowanego typu odcivarchar2list
, co skraca składnię:
select column_value as city
from table(sys.odcivarchar2list('Dallas', 'Berlin', 'Cracow', 'Praha'))
minus
select city from address
... a zamiast minus
Możesz użyć złączeń lub not in
lub not exists
.
Testuj dane i wyniki obu zapytań:
create table address (id number, city varchar2(10));
insert into address values (1, 'Rome');
insert into address values (2, 'Dallas');
insert into address values (3, 'Cracow');
insert into address values (4, 'Moscow');
insert into address values (5, 'Liverpool');
insert into address values (6, 'Cracow');
insert into address values (7, 'Seoul');
CITY
------------
Berlin
Praha