sql >> Database teknologi >  >> RDS >> Oracle

Oracle DB:Returner anden forespørgsel, hvis første forespørgsel er tom

Du kan bruge WITH til at få dette til at fungere bedre (og nemmere at vedligeholde):

WITH query1 as (
    select 1, 2
    from dual
    where 1=0
    connect by level <= 10
),
query2 as (
    select 3, 4
    from dual
    connect by level <= 10
)
select *
from query1
union all
select *
from query2
where not exists (
    select null
    from query1
);

Som det er, skulle dette returnere de 10 rækker fra query2. Hvis du fjerner hvor 1=0 fra forespørgsel1 (hvilket får den til faktisk at returnere rækker), bør du få de 10 rækker fra forespørgsel1.



  1. Sådan fejler eller crasher dine MySQL-instanser til test

  2. Relationel algebra

  3. variabel databasenavn

  4. postgresql:offset + limit bliver meget langsom