我们都知道一个简单的语句例如:
SELECT * FROM stuff;
Run Code Online (Sandbox Code Playgroud)
应该不会产生有序的结果。然而,当我试图证明这一点时,它总是以主键顺序出现。
此外还有一个声明,例如:
SELECT thing,whatever FROM stuff
GROUP BY thing,whatever;
Run Code Online (Sandbox Code Playgroud)
似乎总是按GROUP BY
子句中的最后一个字段对事物进行排序,这根本没有帮助。
问题是,在什么情况下 SQL SERVER 会在未询问的情况下对结果进行排序,我该怎么做才能阻止这种情况?
我试图向我的学生证明,除非指定,否则顺序是不确定的,但这对我的情况没有帮助。
我承认我正在处理一小组样本数据。
谢谢
我需要弄清楚这里的订单是什么意思。我只是询问获取数据的顺序。
如果我只是SELECT * FROM table;
在没有ORDER BY
子句的SQL Server 中,我发现结果总是以相同的顺序出现。对于其他一些数据库服务器,例如 PostgreSQL,情况肯定不是这样。
观察到的行为真的发生了吗?我认为结果将按照添加行的顺序返回。
我还没有尝试过使用非常大的表格,但我使用过的表格似乎确实如此。
笔记:
此问题仅与 SQL Server 相关。我非常理解 SQL 本身没有首选顺序,这是我使用其他数据库的经验。
关键是 SQL Server 似乎更喜欢分配顺序,我想知道这是否属实。
笔记2:
至于这个问题可能是重复的,我对为什么特别在任何地方添加行不感兴趣。我只是想知道它们是否按分配顺序正常返回......