Вы можете сделать это одним запросом:
В соответствии с названием поста вы хотите что-то вроде:
select case when to_char(start_date, 'D') in ('7', '1') then -1 else 0 end
from dual
В соответствии с вашим примером кода, я думаю, вы хотите:
select case
when to_char(start_date, 'D') = '7' and to_char(end_date, 'D') ='1' then -2
when to_char(start_date, 'D') = '7' or to_char(end_date, 'D') ='1' then -1
else 0 end
from dual