sql >> Database >  >> RDS >> Mysql

SQL ALS SELECT-query null is, doe dan nog een query

Er is een eenvoudige manier om alleen sql te gebruiken.

Definieer uw eerste query als een tijdelijke tabel, met union all, filter de tweede query met het aantal tijdelijke tabellen.

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

Deze query retourneert de records van de tweede tabel.

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

En als tijdelijke zoekopdracht resultaat heeft, retourneer dan alleen tijdelijke zoekopdracht.

U kunt testen met sql fiddle hier .



  1. Dubbele bestanden verwijderen met alleen een MySQL-query?

  2. Trage zoekopdracht bij gebruik van ORDER BY

  3. is er een manier om alle gereserveerde woorden in mysql op te sommen met behulp van het mysql-opdrachtregelprogramma?

  4. Hoe SQL Server 2017 &2019 gelijktijdig op een Mac te draaien