SELECT last_name, hire_date,
TO_CHAR(LAST_DAY(hire_date),'DAY') AS "Day"
FROM employees
ORDER BY (CASE TO_CHAR(LAST_DAY(hire_date),'DAY')
WHEN 'MONDAY' THEN 1
WHEN 'TUESDAY' THEN 2
WHEN 'WEDNESDAY' THEN 3
WHEN 'THURSDAY' THEN 4
WHEN 'FRIDAY' THEN 5
WHEN 'SATURDAY' THEN 6
WHEN 'SUNDAY' THEN 7
END) DESC
Мне нужно разобраться в первый день недели Понедельник, Вторник, Среда и т. Д., Но мой результат начинается только с понедельника из-за ключевого слова DESC, а затем его случайных пятниц, вторника, четверга и так далее. Его написанное, как дерьмо, я знаю, но как его исправить полностью?заказать в первый день недели oracle
* Вы вероятно * хотите переместить это выражение CASE, в ЗЕЬЕСТ, дать ему псевдоним, и Поручения псевдоним. –
Попробуйте изменить футляр на 'TO_CHAR (LAST_DAY (hiredate), 'fmD')' См. Здесь http://www.techonthenet.com/oracle/functions/to_char.php – ChrisStillwell
Это очень похоже на этот вопрос, http: //stackoverflow.com/questions/16478112/oracle-sql-sort-week-days-by-current-day –