1.对于rownum ,是使用where 条件之后的数据进行的编号。
2.select * from a where a.id >12 and rownum <12 order by id. 此时rownum标示的数据是还没有经过order的。此时的结果集不能达到查询目的(注意有时 索引扫描可能会出现巧合情况,也不算巧合吧,索引是有序排列的)
3. select * from a where rownum >12 .此语句没有返回结果。可以这么解释,取第一条数据其rownum 为1 ,不满足条件,接着取第二条数据,此时rownum继续从1开始编号(因为前一条数据不满足条件),任然不满足rownum >12。继续往下。如此,所以没有结果(满足第一条总结)。
405

被折叠的 条评论
为什么被折叠?



