Oracle
 sql >> база данни >  >> RDS >> Oracle

Сортиране по ден от седмицата от понеделник до неделя

Получавате го в реда, в който сте, защото поръчвате по низ (а това няма да работи, защото не избирате от нищо).

Можете да поръчате по модела на формата, използван за създаване на деня от седмицата в числова форма, 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)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. System.Data.OracleClient изисква клиентски софтуер на Oracle версия 8.1.7 или по-нова

  2. Как да върнете дробни секунди от стойност на дата и час в Oracle

  3. SQL мониторинг в SQL Developer

  4. LISTAGG в Oracle за връщане на различни стойности

  5. JDBC ResultSet getDate губи прецизност