Вы уверены, что последняя строка Tab2 имеет значение 102, 'ZZ'
или 103, 'ZZ'
(т. Е. Id отличается и упорядочен).
Если это 103, 'ZZ'
, то работает следующий запрос:
select decode(sign(max(ascii(name))-77),-1, min(id), max(id)) id, name
from
(
select t1.id, t1.dr, t2.name from
(
select id, dense_rank() over (order by id) dr from Tab1
union all
select id, dense_rank() over (order by id) dr from Tab2
) t1
join
(
select name, dense_rank() over (order by id) dr from Tab1
union all
select name, dense_rank() over (order by id) dr from Tab2
) t2 on ( t1.dr = t2.dr )
)
group by name;
Демонстрация SQL Fiddle