我试图根据订单排序日期:周六,周日,周一,周二,周三,周四,周五 . 我正在尝试使用案例:
select day,
CASE day
WHEN 1 THEN 1
WHEN 2 THEN 2
WHEN 3 THEN 3
WHEN 4 THEN 4
WHEN 5 THEN 5
WHEN 6 THEN 6
WHEN 7 THEN 7
else 0
END as day_nr
from week where day in (1,2,3,4,5,6,7)
order by day_nr asc
当我选择一周中的所有日子时,这是可以的 . 但如果我只想在1,5,6那天订购不正确 . 获得第一天-Monday . 如何进行?
2 回答
如果您尝试按星期几对一组日期进行排序,而星期六是第一天,则考虑按修改日期排序:
http://sqlfiddle.com/#!4/5940b/3
缺点是它不是很直观,所以如果使用这种方法,请添加代码注释 .
编辑:如果您有一个数字列表,请通过带有列表转换的案例陈述进行排序:
......或者更紧凑,但不那么直观:
在Oracle第1天默认为星期日 .