Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle sql sắp xếp các ngày trong tuần theo ngày hiện tại

Nếu bạn đang cố gắng sắp xếp một nhóm ngày theo ngày trong tuần, với Thứ Bảy là ngày đầu tiên, thì hãy cân nhắc sắp xếp theo một ngày đã sửa đổi:

create table t1(my_date date);
insert into t1
select trunc(sysdate)+rownum
from dual
connect by level <= 20

select
  my_date,
  to_char(my_date,'Day'),
  to_char(my_date,'D')
from
  t1
order by
  to_char(my_date + 1,'D');

http://sqlfiddle.com/#!4/5940b/3

Nhược điểm là nó không trực quan lắm, vì vậy hãy thêm nhận xét mã nếu bạn sử dụng phương pháp này.

Chỉnh sửa:Nơi bạn có một danh sách các số, hãy sắp xếp theo một câu lệnh trường hợp có chuyển đổi danh sách:

case day
  when 1 then 3
  when 2 then 4
  when 3 then 5
  when 4 then 6
  when 5 then 7
  when 6 then 1 -- saturday
  when 7 then 2
end

... hoặc nhỏ gọn hơn, nhưng không trực quan:

case
  when day <= 5 then day + 2
  else               day - 5
end

order by case 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối Python 2.7 với Oracle:mất ký tự (tiếng Ba Lan)

  2. Oracle XE 11g không tìm thấy cơ sở dữ liệu XE

  3. Làm thế nào để lấy ngày có hiệu lực hiện tại trong Oracle?

  4. Tắt và sau đó bật tất cả các chỉ mục bảng trong Oracle

  5. Rò rỉ bộ nhớ Permgen với triển khai lại nóng và cơ sở dữ liệu Oracle