【发布时间】:2011-08-10 04:20:05
【问题描述】:
我有一个表,其中包含一些记录,其中包含名称、评级等字段。
我首先想根据评级限制结果进行排序,将结果限制为 20,然后在此结果集上进一步应用基于名称的排序。
我知道排序我们需要使用类似的查询
Select * from table order by rating Desc limit 20
但是在这个结果集上如何应用另一个级别的排序?如何将这两种类型组合在一个 sqlite 语句中?
【问题讨论】:
我有一个表,其中包含一些记录,其中包含名称、评级等字段。
我首先想根据评级限制结果进行排序,将结果限制为 20,然后在此结果集上进一步应用基于名称的排序。
我知道排序我们需要使用类似的查询
Select * from table order by rating Desc limit 20
但是在这个结果集上如何应用另一个级别的排序?如何将这两种类型组合在一个 sqlite 语句中?
【问题讨论】:
你可以使用例如ORDER BY rating DESC, name ASC 按评级排序,如果评级相同,则按名称排序。
【讨论】:
ASC 是默认值,所以它可以是 ORDER BY rating DESC, name
Select * from table ORDER BY rating DESC, name ASC
这个查询应该可以解决问题:
SELECT * FROM (SELECT * FROM table ORDER BY rating DESC LIMIT 20) ORDER BY name
【讨论】: