Как написать такой запрос в Oracle

#sql #oracle #date

#sql #Oracle #Дата

Вопрос:

У меня есть база данных MySQL, и я хочу перенести все запросы в Oracle, и поскольку я не эксперт в Oracle SQL, я застрял здесь.

У меня есть запрос, подобный этому

 ORDER BY 
   WEEK(`Date`) DESC, `Date` DESC";
  

Мой вопрос: как написать это ORDER BY выражение в Oracle SQL?

Ответ №1:

Вы можете использовать

 ORDER BY TO_NUMBER(TO_CHAR(date_col,'iw','NLS_DATE_LANGUAGE=English')) DESC, date_col DESC
  
  • В Oracle нет формата именования столбцов, содержащего обратные галочки, и date это зарезервированное ключевое слово (не разрешается использовать в качестве имени столбца)

  • TO_NUMBER() необходим, поскольку WEEK() функция в MySQL возвращает числовое значение.