Пример:
with t(a, b) as (
select 'abc de fghij', 'abd el fghij' from dual union all
select '1234', '456784' from dual )
select a, b,
length(trim(translate(a, b, ' '))) ab,
length(trim(translate(b, a, ' '))) ba
from t
Возвращает:
A B AB BA
------------ ------------ ---------- ----------
abc de fghij abd el fghij 1 1
1234 456784 3 4
, что означает, что в строке 1 есть один символ в A, который отсутствует в B, и один в B, который отсутствует в A.
Если с этой логикой все в порядке, напишите ваш запрос как:
select a, b
from t
where length(trim(translate(a, b, ' '))) + length(trim(translate(b, a, ' '))) <= 2