sql >> Base de Datos >  >> RDS >> Oracle

declaración de selección condicional en Oracle

Puede usar una combinación externa como esta:

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 las fechas coinciden con holidaydate no es nulo, por lo que la cláusula CASE muestra la cadena deseada; de lo contrario, muestra el día de orderdate .

order es una palabra reservada. Presumiblemente, su tabla real tiene un nombre diferente, para evitar el ora-00903 error. He usado orders en mi ejemplo, por lo que deberá editar mi código para que coincida con los nombres de su tabla.