dmo*_*ney 36 sql t-sql sql-server sql-order-by
我一直认为没有指定"排序依据"规则的查询会按照where子句中指定的结果对此进行排序.
例如,我的where子句指出:
WHERE RESULTS_I_AM_SEARCHING_FOR IN
ITEM 1
ITEM 2
ITEM 3
Run Code Online (Sandbox Code Playgroud)
我原以为第1项,第2项和第3项的结果将按照在哪里指定的顺序进行,但事实并非如此.有没有人知道在没有指定时它将它们排序的顺序是什么?
谢谢,对不起真正的基本问题!
达蒙
mar*_*c_s 51
如果未指定ORDER BY,则无定义ORDER.
结果可以以任意顺序返回 - 也可能随时间而变化.
在关系数据库中没有"自然顺序"或类似的东西(至少在我所知的所有内容中).获得可靠排序的唯一方法是明确指定一个ORDER BY子句.
更新:对于那些仍然不相信我的人 - 这里有两篇很好的博客文章说明了这一点(包含代码示例!):