我尝试使用order by子句对同一列上的数据进行排序和重新排序。我的查询是:
SELECT * FROM Customers ORDER BY Country ASC, Country DESC;
结果令人惊讶。它仅按升序对Country
列进行排序。
据我所知,Country
列应该先按升序排序,然后按降序排序。
为什么 SQL 跳过了查询的下一部分?
在子句中指定多个项目
ORDER BY
排序按如下方式确定:- 结果使用一阶规范(列名 + 方向(进行排序
- 任何剩余的连接都使用二阶规范解析,
- 剩余的任何连接都使用三阶规范进行解析,依此类推。
无论方向如何,使用同一列解析连接都不会更改顺序,因为列中的值在绑定组中是相同的。