Bạn đang nhận được nó theo thứ tự bạn là bởi vì bạn đang đặt hàng bởi một chuỗi (và điều này sẽ không làm việc vì bạn không chọn từ bất cứ điều gì) .
Bạn có thể đặt hàng theo số format model được sử dụng để tạo ngày trong tuần ở dạng số, D
, nhưng chủ nhật là 1 trong số này tôi khuyên bạn nên sử dụng mod()
để thực hiện công việc này.
ví dụ: giả sử bảng
create table a (b date);
insert into a
select sysdate - level
from dual
connect by level <= 7;
này sẽ làm việc:
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)
Dưới đây là một SQL Fiddle để chứng minh.
Trong trường hợp của bạn truy vấn của bạn sẽ trở thành:
select ename, to_char(hiredate,'fmDay') as "Day"
from my_table
order by mod(to_char(hiredate, 'D') + 5, 7)
đây là ngày bắt đầu với chủ nhật. –