Det finns några enkla sätt att bara använda sql.
Definiera din första fråga som en tillfällig tabell, med union all, filtrera den andra frågan med temptabellens antal.
with temp as (select * from t1 where 1=0)
select * from temp
union all
select * from t2 where (select count(*) from temp) =0
Den här frågan returnerar den andra tabellens poster.
with temp as (select * from t1 )
select * from temp
union all
select * from t2 where (select count(*) from temp) =0
Och om en tillfällig fråga har resultat, returnera bara en tillfällig fråga.
Du kan testa med sql-fiol här .