Você pode usar uma junção externa assim:
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 ;
Se as datas corresponderem a
holidaydate
não é nulo, então a cláusula CASE exibe a string desejada, caso contrário, exibe o dia do orderdate
. order
é uma palavra reservada. Presumivelmente, sua tabela real tem um nome diferente, para evitar o ora-00903
erro. Eu usei orders
no meu exemplo, então você precisará editar meu código para corresponder ao(s) nome(s) da(s) sua(s) tabela(s).