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

betinget valg-erklæring i oracle

Du kan bruge en ydre joinforbindelse som denne:

SELECT OrderId,
       OrderDate, 
       case when holidaydate is not null then  'Public holiday' 
             else to_char(OrderDate, 'Day') end as DAY
from orders
     left outer join holidays
        on OrderDate = holiday_date ;

Hvis datoerne matcher holidaydate er ikke null, så CASE-sætningen viser din ønskede streng ellers viser den dagen for orderdate .

order er et reserveret ord. Formentlig har din rigtige tabel et andet navn, for at undgå ora-00903 fejl. Jeg har brugt orders i mit eksempel, så du bliver nødt til at redigere min kode, så den matcher dine tabelnavne.



  1. Sammenlign Two Strings i MySQL

  2. Python MySQLdb pladsholdere syntaks

  3. SQL Hent alle poster, der er ældre end 30 dage

  4. Implementering af super-type undertype korrekt i MySQL