Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Urutkan berdasarkan hari dalam seminggu dari Senin hingga Minggu

Anda mendapatkannya sesuai urutan karena Anda memesan dengan string (dan ini tidak akan berfungsi karena Anda tidak memilih dari apa pun).

Anda dapat memesan dengan model format yang digunakan untuk membuat hari dalam seminggu dalam bentuk numerik, D , tetapi karena hari Minggu adalah 1 dalam hal ini, saya akan merekomendasikan menggunakan mod() untuk membuat ini berhasil.

yaitu dengan asumsi tabel

create table a ( b date );

insert into a
 select sysdate - level
  from dual
connect by level <= 7;

Ini akan berhasil:

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)

Berikut adalah SQL Fiddle untuk didemonstrasikan.

Dalam kasus Anda, kueri Anda akan menjadi:

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. Apa pengaturan untuk melihat bagian waktu dengan tanggal di pengembang Oracle PL/SQL?

  2. Cadangan Skema SQL Saja?

  3. Bagaimana ROWNUM bekerja dalam kueri pagination?

  4. Bagaimana saya bisa menjalankan skrip SQL asli di JPA/Hibernate?

  5. Bagaimana cara memasukkan/memperbarui ukuran data yang lebih besar di tabel Oracle?