sql >> Base de Datos >  >> RDS >> Oracle

Encuentre los datos que faltan pasados ​​a SQL en la cláusula

Puedes usar union para construir una tabla de ciudades y luego 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

En lugar de unión, puede usar el tipo predefinido odcivarchar2list , que acorta la sintaxis:

select column_value as city 
  from table(sys.odcivarchar2list('Dallas', 'Berlin', 'Cracow', 'Praha'))
minus
select city from address

... y en lugar de minus Puede usar uniones o not in o not exists .

Datos de prueba y resultados de ambas 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