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

Art*_*hur 0 sql ms-access

考虑以下代码:

SELECT s, COUNT(*)
FROM p
GROUP BY s;
Run Code Online (Sandbox Code Playgroud)

我是否应该期望记录相对于s进行排序?以我的经验,在Access 2007中,该命令似乎暗示了一个顺序。

Gor*_*off 5

使用SQL时,绝对不要做这种假设。总是最好添加一个显式的ORDER BY

order by s
Run Code Online (Sandbox Code Playgroud)

这是因为SQL(语言)不保证结果集的顺序为no ORDER BY

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

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

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