同问,select top 100 UserName from UserInfo的顺序按照什么排的?

解决方案 »

  1.   

    Access如果不用order by默认就是按照表的id升序来返回结果的。
    但是SQL SERVER如果不用order by将会按照插入数据库的顺序来返回结果,最早插入的排列的靠前(特殊情况是,如果表有聚集索引的时候,返回结果按照聚集索引升序排列)。但是无论哪种数据库,使用order by排序是个好习惯。
      

  2.   

    但是在没有聚集索引的Access中使用order by效率是很低的。
    真的会是这样?
      

  3.   

    对Access不是很了解,也许Access按照id升序输出后就不建议使用order by了,不懂
      

  4.   

    ORDER一下,当然会做额外的工作。
    如果你升序的话,尽量就不用再ORDER BY了,只要设计的时候注意这一点就可以了。其实MSSQL也一样,一般来说,ID都是列都是自增的但是SQL SERVER如果不用order by将会按照插入数据库的顺序来返回结果,最早插入的排列的靠前(特殊情况是,如果表有聚集索引的时候,返回结果按照聚集索引升序排列)。和这个也不冲突。即使你的聚集索引没有加在ID上,也很可能加在时间字段上。而时间字段也基本上跟插入顺序相温和升续,对应ID也升续不ORDER,提高效率,结果又一样,何乐而不为?