Многоуровневый порядок

39

У меня есть таблица с некоторыми записями с такими полями, как имя, рейтинг и т.д.

Сначала я хочу сортировать, основываясь на результатах, ограничивающих рейтинг, до 20, а затем на этом результирующем наборе хотите далее применять сортировку по имени.

Я знаю, что для сортировки нам нужно использовать запрос типа

Select * from table order by rating Desc limit 20

но на этом результирующем наборе как применить другой уровень упорядочения? Как я могу объединить эти два вида в одном заявлении sqlite?

Теги:
sorting
order

2 ответа

108

Вы можете использовать, например. ORDER BY rating DESC, name ASC сортировать по рейтингу, а затем, если рейтинги равны, по имени.

  • 0
    в SQL ASC является значением по умолчанию, поэтому оно может быть ORDER BY rating DESC, name
  • 0
    @VasileDoe: Да, вы можете, и я думаю, что это очень уродливо, если у вас есть что-то, что не является ASC в том же утверждении.
Показать ещё 1 комментарий
16

Этот запрос должен сделать трюк:

SELECT * FROM (SELECT * FROM table ORDER BY rating DESC LIMIT 20) ORDER BY name

Ещё вопросы

Сообщество Overcoder
Наверх
Меню