GROUP BY 是否以任何方式暗示记录的顺序?



请考虑以下代码:

SELECT s, COUNT(*)
FROM p
GROUP BY s;

我应该期望记录相对于 s 进行排序吗?根据我的经验,在 Access 2007 中,命令似乎意味着订单。

在使用 SQL 时,永远不应该做出这样的假设。 最好添加一个明确的ORDER BY

order by s

这是因为 SQL(语言(不保证没有ORDER BY的结果集的排序。

也就是说,MS Access将按顺序返回结果,因为我认为它只有一种算法来计算ORDER BY - 对列表进行排序。

但是,肯定还有其他算法。 例如,SQL Server具有基于哈希的算法和并行算法。

因此,您不妨学习如何编写正确的查询。

最新更新