sql >> Database >  >> RDS >> Oracle

Oracle DB:tweede query retourneren als eerste query leeg is

U kunt WITH gebruiken om dit beter te laten presteren (en gemakkelijker te onderhouden):

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
);

Zoals het is, zou dit de 10 rijen van query2 moeten retourneren. Als u de where 1=0 uit query1 verwijdert (waardoor het daadwerkelijk rijen retourneert), zou u de 10 rijen uit query1 moeten halen.



  1. Een injectie-aanval die slaagt met mysql_query, maar faalt met mysqli_query

  2. Voer native sql uit met hibernate

  3. Oracle-tabel of weergave bestaat niet vanuit de opgeslagen procedure

  4. Java combobox schommel