SQL:将相同的列排序为asc然后desc

时间:2017-06-30 14:44:51

标签: sql sorting sql-order-by

我尝试使用order by子句对同一列上的数据进行排序和重新排序。我的疑问是:

SELECT * FROM Customers ORDER BY Country ASC, Country DESC;

结果令人惊讶。它仅对升序中的Country列进行排序。

据我所知,Country列应首先按升序排序,然后按降序排序。

为什么SQL会跳过查询的下一部分?

1 个答案:

答案 0 :(得分:5)

ORDER BY子句中指定多个项目时,顺序确定如下:

  • 使用第一个订单规范(列名+方向)
  • 对结果进行排序
  • 使用二阶规范
  • 解决剩余的任何关系
  • 使用第三顺序规范解决剩余的任何关系,依此类推。

使用相同的列解决关系,无论方向如何,都不会更改排序,因为列中的值在绑定组中是相同的。