Получавате го в реда, в който сте, защото поръчвате по низ (а това няма да работи, защото не избирате от нищо).
Можете да поръчате по модела на формата, използван за създаване на деня от седмицата в числова форма, D
, но тъй като неделята е 1 в това, бих препоръчал да използвате mod()
за да работи това.
т.е. като приемем таблицата
create table a ( b date );
insert into a
select sysdate - level
from dual
connect by level <= 7;
Това ще работи:
select mod(to_char(b, 'D') + 5, 7) as dd, to_char(b, 'DAY')
from a
order by mod(to_char(b, 'D') + 5, 7)
Ето една SQL Fiddle за демонстрация.
Във вашия случай вашата заявка ще бъде:
select ename, to_char(hiredate,'fmDay') as "Day"
from my_table
order by mod(to_char(hiredate, 'D') + 5, 7)