,它会根据返回记录生成一个序列化的数字。...a、利用查询需要进行分页的结果集,然后根据然会的结果集生成rownum
select rownum,a.* from (select * from emp) a
左图红框内的结果集是rownum生成的行序号...)
where rn>=6
其实到这一步,还是会有很多人不明白为什么上面的a为什么要那样查询整个结果集,并给结果集生成一个rownum,明明可以像下面这样写:
select rownum,a.* from...emp a;
现在告诉为什么这样写:
因为这样写方便管理我们要查询的字段,将我们要查的字段和实际的排序过程分开,更好的控制排序,如果我们这里不需要查询所有的字段,而只需要查询JOB、MGR、SAL三个字段我们就可以这样改...,而且如果这边的查询需要根据某个字段进行排序,这边更是无法处理,所以这个代码的扩展性很差,而上面的只需要更改红框内的结果集就行了。