Er is een eenvoudige manier om alleen sql te gebruiken.
Definieer uw eerste query als een tijdelijke tabel, met union all, filter de tweede query met het aantal tijdelijke tabellen.
with temp as (select * from t1 where 1=0)
select * from temp
union all
select * from t2 where (select count(*) from temp) =0
Deze query retourneert de records van de tweede tabel.
with temp as (select * from t1 )
select * from temp
union all
select * from t2 where (select count(*) from temp) =0
En als tijdelijke zoekopdracht resultaat heeft, retourneer dan alleen tijdelijke zoekopdracht.
U kunt testen met sql fiddle hier .