【发布时间】:2013-12-01 18:05:47
【问题描述】:
我一直认为没有指定“排序依据”规则的查询会按照 where 子句中指定的结果排序。
例如,我的 where 子句指出:
WHERE RESULTS_I_AM_SEARCHING_FOR IN
ITEM 1
ITEM 2
ITEM 3
我原以为第 1、2 和 3 项返回的结果将按照 where 中指定的顺序,但事实并非如此。有谁知道在未指定时它按什么顺序排序?
感谢和抱歉这个非常基本的问题!
达蒙
【问题讨论】:
-
基本上,如果您不太关心指定 ORDER BY 子句,则不应该关心选择了什么顺序。如果您确实关心结果顺序,请通过添加与您期望的匹配的 ORDER BY 子句来告诉 SQL Server。请注意,ORDER BY 子句可以通过引入可能低效的排序操作使查询变得更加昂贵。
-
请记住,如果没有 explicit 顺序规范,在更改表上的索引、更新到 SQL Server 之后,顺序可能会发生变化,...。这是为下一个选择维护代码的受害者留下定时炸弹的好方法。
标签: sql sql-server tsql sql-order-by