Você pode usar
union
para construir a tabela de cidades e então minus
operador. 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
Em vez de união, você pode usar o tipo predefinido
odcivarchar2list
, que encurta a sintaxe:select column_value as city
from table(sys.odcivarchar2list('Dallas', 'Berlin', 'Cracow', 'Praha'))
minus
select city from address
... e em vez de
minus
Você pode usar junções ou not in
ou not exists
. Dados de teste e saída de ambas as consultas:
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