SQLのみを使用する簡単な方法がいくつかあります。
最初のクエリを一時テーブルとして定義し、すべてを結合して、2番目のクエリを一時テーブルの数でフィルタリングします。
with temp as (select * from t1 where 1=0)
select * from temp
union all
select * from t2 where (select count(*) from temp) =0
このクエリは、2番目のテーブルのレコードを返します。
with temp as (select * from t1 )
select * from temp
union all
select * from t2 where (select count(*) from temp) =0
また、一時クエリに結果がある場合は、一時クエリのみを返します。
ここでSQLフィドル を使用してテストできます。 。