Има някои лесни начини да използвате само sql.
Дефинирайте първата си заявка като временна таблица, с union all, филтрирайте втората заявка с броя на временната таблица.
with temp as (select * from t1 where 1=0)
select * from temp
union all
select * from t2 where (select count(*) from temp) =0
Тази заявка ще върне записите на втората таблица.
with temp as (select * from t1 )
select * from temp
union all
select * from t2 where (select count(*) from temp) =0
И ако временната заявка има резултат, върнете само временна заявка.
Можете да тествате с sql fiddle тук .