SQLSERVER的排序问题结果不是想要的
程序员文章站
2023-11-24 09:31:58
在论坛里经常有人问这样的问题: 同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在sql2000里是这个顺序,到了sql2005/2008又是那个顺...
在论坛里经常有人问这样的问题:
同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在sql2000里是这个顺序,到了sql2005/2008又是那个顺序?
其实,只要语句里没有指定“order by”,sqlserver并不会按照顺序返回的。有可能你的表里有一个字段已经建立了索引
你想结果集按照那个建立了索引的字段排序,那么你不指定“order by”是没有问题的,因为表的存储顺序就是按照那个字段的顺序排好序了,所以可以不指定“order by”,但是如果你没有在想排序的那个字段建立索引,或者在sql2000里建立了索引,而在sql2005/2008里没有建立索引,那么就要明确地用“order by”指定。如果你没有指定,哪怕一模一样的查询,
结果集顺序这一次和上一次不一样是很正常的。
同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在sql2000里是这个顺序,到了sql2005/2008又是那个顺序?
其实,只要语句里没有指定“order by”,sqlserver并不会按照顺序返回的。有可能你的表里有一个字段已经建立了索引
你想结果集按照那个建立了索引的字段排序,那么你不指定“order by”是没有问题的,因为表的存储顺序就是按照那个字段的顺序排好序了,所以可以不指定“order by”,但是如果你没有在想排序的那个字段建立索引,或者在sql2000里建立了索引,而在sql2005/2008里没有建立索引,那么就要明确地用“order by”指定。如果你没有指定,哪怕一模一样的查询,
结果集顺序这一次和上一次不一样是很正常的。
推荐阅读
-
SQLSERVER的排序问题结果不是想要的
-
三个数字排序问题,按照从小到大的思路排除结果
-
Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_L及由于排序规则不同导致查询结果为空的问题
-
请问个mysql有关问题.关于获取查询结果中某一个字段的最大值.(按照其他字段排序)
-
SQLServer排序时与读取的记录会影响到结果?
-
SQLSERVER的排序问题
-
SQLSERVER的排序问题结果不是想要的
-
SQLServer排序时与读取的记录会影响到结果?
-
sqlserver中排序取数据的问题
-
三个数字排序问题,按照从小到大的思路排除结果