Dostaniesz go w porządku jesteś, bo jesteś zamawiania przez ciąg (i to nie będzie działać, ponieważ nie jesteś wybierając z niczego) .
Można zamówić przez format model użyte do wygenerowania dzień tygodnia w postaci numerycznej, D
, ale niedziela jest 1 w ten polecam korzystania mod()
do tej pracy.
czyli zakładając tabelę
create table a (b date);
insert into a
select sysdate - level
from dual
connect by level <= 7;
to będzie działać:
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)
Oto SQL Fiddle wykazać.
W twoim przypadku zapytanie staną:
select ename, to_char(hiredate,'fmDay') as "Day"
from my_table
order by mod(to_char(hiredate, 'D') + 5, 7)
to dzień rozpoczynający się w niedzielę. –