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

kod*_*ter 3 sql sorting sql-order-by

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

SELECT * FROM Customers ORDER BY Country ASC, Country DESC;
Run Code Online (Sandbox Code Playgroud)

结果令人惊讶.它Country仅按升序排序列.

根据我的知识,Country列应首先按升序排序,然后按降序排序.

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

das*_*ght 5

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

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

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