首页 > 解决方案 > GROUP BY 是否以任何方式暗示记录的顺序?

问题描述

考虑以下代码:

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

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

标签: sqlms-access

解决方案


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

order by s

这是因为 SQL(语言)不保证没有ORDER BY.

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

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

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


推荐阅读