Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL IF SELECT-Abfrage ist null, dann führen Sie eine andere Abfrage durch

Es gibt einige einfache Möglichkeiten, nur SQL zu verwenden.

Definieren Sie Ihre erste Abfrage als temporäre Tabelle mit union all, filtern Sie die zweite Abfrage mit der Anzahl der temporären Tabellen.

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

Diese Abfrage gibt die Datensätze der zweiten Tabelle zurück.

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

Und wenn die temporäre Abfrage ein Ergebnis hat, geben Sie nur die temporäre Abfrage zurück.

Sie können sql fiddle hier testen .