好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SQLSERVER的排序问题

SQLSERVER的排序问题 在论坛里经常有人问这样的问题: 同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序? 其实,只要语句里没有指定 order by ,SQLSERVER并不会按照顺序返

SQLSERVER的排序问题

在论坛里经常有人问这样的问题:

同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序?

其实,只要语句里没有指定[ order by ],SQLSERVER并不会按照顺序返回的。有可能你的表里有一个字段已经建立了索引

你想结果集按照那个建立了索引的字段排序,那么你不指定[ order by ]是没有问题的,因为表的存储顺序就是按照那个字段

的顺序排好序了,所以可以不指定[ order by ],但是如果你没有在想排序的那个字段建立索引,或者在SQL2000里建立了

索引,而在SQL2005/2008里没有建立索引,那么就要明确地用[ order by ]指定。如果你没有指定,哪怕一模一样的查询,

结果集顺序这一次和上一次不一样是很正常的。

查看更多关于SQLSERVER的排序问题的详细内容...

  阅读:48次