Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Znajdź brakujące dane przekazane do SQL w klauzuli

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czytanie zmiennej clob linia po linii

  2. Oracle sqlldr -> niezdefiniowany symbol:sldext

  3. Połącz się z bazą danych Oracle 10g za pomocą Microsoft ODBC for Oracle

  4. Błąd połączenia z lokalnym hostem Java Oracle (ORA-12505)

  5. Jak zmienić format daty w bazie danych Oracle