SQL多字段ORDER BY逻辑问询:首字段无重复值时的排序规则
SQL ORDER BY多字段排序逻辑答疑
当你指定ORDER BY多个字段时,只有第一个字段出现值重复(并列)的情况下,第二个字段才会生效作为决胜条件。如果第一个排序字段的所有值都不重复,第二个字段完全不会影响最终的排序结果。
用你举的例子来说:
- 《指环王》:获奖12次,IMDb评分6
- 《泰坦尼克号》:获奖11次,IMDb评分9
- 假设还有一部《阿凡达》:获奖10次,IMDb评分8
如果执行SQL语句:
SELECT * FROM movies ORDER BY awards DESC, imdb_rating DESC;
因为awards字段的三个值(12、11、10)完全不重复,SQL会直接按照awards的降序排列结果,最终展示顺序就是:
- 《指环王》(获奖12次)
- 《泰坦尼克号》(获奖11次)
- 《阿凡达》(获奖10次)
哪怕《泰坦尼克号》的IMDb评分比《指环王》高,也不会改变排序结果——因为第一个排序字段没有出现并列,第二个字段的规则根本不会被触发。
内容的提问来源于stack exchange,提问作者Mohamad Abdelsamad
相关产品推荐
相关产品推荐

