sql >> Database >  >> RDS >> Oracle

Oracle sql weekdagen sorteren op huidige dag

Als je een reeks datums probeert te sorteren op dag van de week, met zaterdag als eerste, overweeg dan om op een gewijzigde datum te bestellen:

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

Het nadeel is dat het niet erg intuïtief is, dus voeg een codecommentaar toe als je deze methode gebruikt.

Bewerken:als u een lijst met nummers heeft, bestel dan op basis van een case-statement met ofwel een lijstconversie:

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

... of de meer compacte, maar niet zo intuïtieve:

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

order by case 


  1. Ik krijg een Er is een poging gedaan om een ​​programma te laden met een onjuiste indelingsfout op een SQL Server-replicatieproject

  2. hoe de database te vullen met behulp van procedures

  3. Hoe de laatste kolom in de mysql-tabel toe te voegen?

  4. Gegevensbeheer met Python, SQLite en SQLAlchemy