Oracle
 sql >> Base de données >  >> RDS >> Oracle

instruction de sélection conditionnelle dans oracle

Vous pouvez utiliser une jointure externe comme celle-ci :

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 ;

Si les dates correspondent à holidaydate n'est pas nul donc la clause CASE affiche la chaîne souhaitée sinon elle affiche le jour de la orderdate .

order est un mot réservé. Vraisemblablement, votre vraie table a un nom différent, pour éviter le ora-00903 Erreur. J'ai utilisé des orders dans mon exemple, vous devrez donc modifier mon code pour qu'il corresponde au(x) nom(s) de votre table.