Ну, это не красиво, но это делает то, о чем вы, как мне кажется, просили.
Причина, по которой cte's делает SQLL более разборчивым.
with t1a as
(select *
from tablea a
where a.mark1 = 1
and a.transition = 'a'),
t2b as
(select *
from tablea a
where a.mark1 = 2
and a.transition = 'b')
select t1a.mark2
from t1a
where mark2 in (select mark1 from t2b)
union
select t2b.mark2
from t2b
Надеюсь, я не понял неправильноВаш запрос.