2016-02-12 3 views

ответ

1

Вот доказательство того, что минус и не существуют запросы не возвращают те же результаты:

Минус Запрос

with t1 as (select 1 id, 'a' val from dual union all 
      select 1 id, 'a' val from dual union all 
      select 2 id, 'b' val from dual), 
    t2 as (select 2 id, 'b' val from dual union all 
      select 3 id, 'c' val from dual) 
select id, val 
from t1 
minus 
select id, val 
from t2; 

Минус Результаты

 ID VAL 
---------- --- 
     1 a 

Не Exists запрос

with t1 as (select 1 id, 'a' val from dual union all 
      select 1 id, 'a' val from dual union all 
      select 2 id, 'b' val from dual), 
    t2 as (select 2 id, 'b' val from dual union all 
      select 3 id, 'c' val from dual) 
select id, val 
from t1 
where not exists (select null 
        from t2 
        where t1.id = t2.id 
        and t1.val = t2.val); 

Не Exists Результаты

 ID VAL 
---------- --- 
     1 a 
     1 a 
+0

Спасибо за ответ – Mayuran