SQLSERVER的排序问题结果不是想要的
2013-03-11 17:27
1171 查看
在论坛里经常有人问这样的问题:
同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在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的排序问题结果不是想要的
- SqlServer中的UNION操作符在合并数据时去重的原理以及UNION运算符查询结果默认排序的问题
- MyBatis排序时使用order by 动态参数时需要注意,用$而不是#, #{}和${}的区别以及order by注入问题
- 关于《C语言深度剖析》中的一个问题?结果不是15??
- SqlServer使用top 100 PERCENT 无法排序的问题
- sqlserver 数据库出现 排序规则问题
- 问题:sqlserver有没有类似Oracle的LISTAGG;结果: 灵活运用 SQL SERVER FOR XML PATH
- sqlserver 按照特定值排序查询结果
- sqlserver 中select in的排序问题
- mysql查询结果包含空的列排序问题
- 类型:sqlserver;问题:版本;结果:sqlserver版本区分
- db2存储过程在关联使用left join 时候出现的不是自己想要的结果可能性,以及解决办法
- 特殊字符即转义字符在浏览器下显示的不是想要的结果,以和"&"为例子讲解
- sqlserver之排序规则和ETL不支持sqlserverdatetime2的问题
- SQLServer排序时与读取的记录会影响到结果?
- “黑马程序员”声明类Student,包含3个成员变量:name、age、score,创建5个对象装入TreeSet,按照成绩排序输出结果(考虑成绩相同的问题)
- php excel 读取日期问题 在 php excel 读取 xls 格式的文件时,xls 上面显示的是正常的日期格式 但是读取出来的话,就会是一个万位整形数据,这显然不是我们想要的日
- mysql按照每天分组查询数据结果排序不是从1到31而是1后接10
- 6 Lucene笔记(六):检索结果排序问题
- oracle翻页,排序字段重复,翻页结果重复 问题的解决方法