sql >> Database >  >> RDS >> Oracle

Wat is het verschil tussen 'niet in' en 'bestaat niet'?

Het verschil tussen NIET IN en BESCHIKT NIET wordt duidelijk waar er NULL . zijn waarden opgenomen in het resultaat.

Bijvoorbeeld:

create table test_a (col1 varchar2(30 char));
create table test_b (col1 varchar2(30 char));

insert into test_a (col1) values ('a');
insert into test_a (col1) values ('b');
insert into test_a (col1) values ('c');
insert into test_a (col1) values ('d');
insert into test_a (col1) values ('e');

insert into test_b (col1) values ('a');
insert into test_b (col1) values ('b');
insert into test_b (col1) values ('c');
insert into test_b (col1) values (null);

Opmerking :Het belangrijkste verschil is dat test_b bevat een null waarde.

select * from test_a where col1 not in (select col1 from test_b);

Geen rijen geretourneerd

select * from test_a where 
    not exists
        (select 1 from test_b where test_b.col1 = test_a.col1);

Retourneren

col1
====
d
e


  1. Ontsnappen en invoegen van geserialiseerde gegevens in MySQL

  2. Kan ik externe sleutels maken voor meerdere databases?

  3. PHP:Hoe een variabele (a) binnen een andere variabele(b) weer te geven als variabele (b) tekst bevat

  4. Excel-spreadsheetkolommen importeren in SQL Server-database