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.