Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A consulta SQL IF SELECT é nula, então faça outra consulta


Existem algumas maneiras simples de usar apenas sql.

Defina sua primeira consulta como uma tabela temporária, com união de todos, filtre a segunda consulta com a contagem da tabela temporária.
with temp as (select * from t1 where 1=0)
select * from temp
union all
select * from t2 where (select count(*) from  temp) =0

Esta consulta retornará os registros da segunda tabela.
with temp as (select * from t1 )
select * from temp
union all
select * from t2 where (select count(*) from  temp) =0

E se a consulta temporária tiver resultado, retorne apenas a consulta temporária.

Você pode testar com fiddle sql aqui .