Вы можете использовать оператор EXCEPT для этого.
В приведенном ниже примере я использую общие табличные выражения для извлечения отдельных строк (в данном случае предполагается, что id
является первичным ключом.
with r1 as (select c1, c2, ..., c15 from t where id = 1),
r2 as (select c1, c2, ..., c15 from t where id = 2)
select * from r1
except
select * from r2
Если это возвращает 0 строк, то строки идентичны. Если он возвращает строку, то две строки различаются.
Если вы действительно хотите, чтобы результат был «МАТЧ» или «НЕ МАТЧ»:
with r1 as (select c1, c2, ..., c15 from t where id = 1),
r2 as (select c1, c2, ..., c15 from t where id = 2),
rs as (select * from r1 except select * from r2)
select
case when count(*) = 0 then 'MATCH'
else 'NOT MATCH'
end as comparison
from
rs;