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

Oracle sql mengurutkan hari minggu berdasarkan hari ini

Jika Anda mencoba mengurutkan serangkaian tanggal menurut hari dalam seminggu, dengan hari Sabtu sebagai yang pertama, maka pertimbangkan untuk memesan menurut tanggal yang diubah:

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

Kelemahannya adalah tidak terlalu intuitif, jadi tambahkan komentar kode jika Anda menggunakan metode ini.

Sunting:Jika Anda memiliki daftar angka, urutkan berdasarkan pernyataan kasus dengan salah satu konversi daftar:

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

... atau yang lebih ringkas, tetapi tidak seintuitif:

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. buat tabel dengan serikat pilih tidak memiliki kendala

  2. ORACLE Casting DATE to TIMESTAMP WITH TIME ZONE WITH OFFSET

  3. Bagaimana cara memasukkan tanggal BC ke Oracle?

  4. ALTER &DROP Tabel DDL Dengan Jalankan Segera Di Oracle Database

  5. Apakah oci_bind_by_name mencegah injeksi SQL dengan aman?