sql >> Base de Datos >  >> RDS >> Mysql

La consulta SQL IF SELECT es nula, luego haga otra consulta

Hay algunas formas simples de usar solo sql.

Defina su primera consulta como una tabla temporal, con la unión de todos, filtre la segunda consulta con el conteo de la tabla temporal.

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 devolverá los registros de la segunda tabla.

with temp as (select * from t1 )
select * from temp
union all
select * from t2 where (select count(*) from  temp) =0

Y si la consulta temporal tiene un resultado, solo devuelve la consulta temporal.

Puede probar con sql fiddle aquí .