Sự khác biệt giữa KHÔNG VÀO và KHÔNG TỒN TẠI trở nên rõ ràng nơi có NULL
các giá trị được bao gồm trong kết quả.
Ví dụ:
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);
Lưu ý :Điểm khác biệt chính của chúng là test_b
chứa null
giá trị.
select * from test_a where col1 not in (select col1 from test_b);
Không có hàng nào được trả lại
select * from test_a where
not exists
(select 1 from test_b where test_b.col1 = test_a.col1);
Trả lại
col1
====
d
e