日期:2014-05-18  浏览次数:20472 次

SELECT查询的数据默认排序问题
select *
from table
where createdatetime > '20120203'

表有Id、createdatetime 字段。在用这样的SQL查询出的数据的默认排序是乱序的,并不是按Id也不是按createdatetime排序,这是怎么回事?我知道后面加个order by可以排序,这个就不用说了,我想知道的是没有order by语句时是如何排序的。

------解决方案--------------------
表是行集,在概念上无所谓前与后,具体的实现应该是有前后顺序,
但微软的资料并无一个明确的说明.
要保证正确的顺序就必须加上order by
------解决方案--------------------
如果条件命中索引
一般按照命中索引的排序
否则按照扫描到的先后顺序排序