Запрос Room (SQL) для получения результатов, упорядоченных сегодня первым, завтра вторым и всем остальным

#android #sql #android-room

#Android #sql #android-room

Вопрос:

Как я могу получить результаты, отсортированные в следующем порядке: сегодня первый, завтра второй и все остальные в порядке decs? Я использую Room от Jetpack для Android. Пока я понимаю это SELECT * FROM LocalCreatedWorkout ORDER BY date ASC , но этот запрос сортирует записи только в порядке возрастания.

Комментарии:

1. Просто используйте ORDER BY date DESC

2. Есть записи, которые имеют более позднюю дату, а затем завтра, и я хочу сначала сегодня, завтра вторым, а все остальное в порядке убывания

Ответ №1:

Я думаю, вы могли бы использовать CASE WHEN в ORDER BY предложении:

 ORDER BY CASE WHEN date(LocalCreatedWorkout) = date('now') THEN 1 
   WHEN date(LocalCreatedWorkout) = date('now',' 1 day') THEN 2
   ELSE 3 END ASC, LocalCreatedWorkout DESC
  

Комментарии:

1. Спасибо. Это сработало. Мне интересно, могу ли я сортировать каждый случай по отдельности?

2. Не уверен, что я понимаю ваш вопрос, что вы имеете в виду?