当前位置: 代码迷 >> Sql Server >> max()和order by解决方法
  详细解决方案

max()和order by解决方法

热度:424   发布时间:2016-04-24 10:45:05.0
max()和order by
1. select MAX(Id) from (select top 30 Id from T_Test) as A
2. select MAX(Id) from (select top 30 Id from T_Test order by Id) as A

想找出T_Test中第30条记录,为什么1不行,2加了 order by就可以了呢?
------解决方案--------------------
要记住一个东西,唯一能保证结果集(不是表,是查询的中间结果)有序的方式是加上order by子句(当然不是加了就一定有效,还有一些小细节,比如order by中列的唯一性等等),即使有聚集索引,优化器可能在面对多数据文件时进行并行查询导致数据结果并不如意,所以如果你要查询前N条,加上order by才保险
  相关解决方案