oracle的笔记,凑合着看吧!8.分页以及rownum

oracle是用虚拟列的rownum代表行数,写法呢;
    select * from (select rownum  as r, ename from emp where rownum < 10) e where r > 5;
         

    记得他只能使用<(小于号)来使用,如果使用=,他只有rownum=1的时候,能够得到数据,而使用>(大于号)时 候只有rownum > 0 时会得到记录;
     
顺便说明一些对于rownum的理解吧,他呢,是一个虚拟列,本身就是数据库读取文件时候的顺序,然后累加起来就是i=i++;
      
   估计这么说也很难明白,恩,首先说下顺序吧,你要rownum,他是先有结果集,然后从结果集中的顺序来定义rownum,也就是先有鸡后又蛋;
        
解释之前所说的条件:
                
    只有rownum=1的时候,能够得到数据,因为他是不断累加的,累加是从第一条记录开始,也是说初始化就是1,但是你如果查rownum=2,那么他还没有累加,也是缓存中不存在第二条记录,所以不会得到数据;
                                                
                
    使用>(大于号)时候只有rownum > 0 时会得到记录,与上边相同,因为他从>0查起,那么就是从1开始累加,那么就完全符合累加条件;
      
          
说到这里明白没,就是所有的查询,必须从第一条记录开始,没有第一条记录的,就完蛋,因为他需要从1来累加;


就像<飘渺之旅>李强和赤明用傀儡作出的身外化身一样,身外化身本身是不存在,只有李强使用傀儡木偶才能变出来身外化身,但是永远是先有李强(结果集)后有身外
化身(rownum),并且永远是先有第一个身外化身的,然后第二个...第三个..; 不会先有第二个或者第三个;这个和java的数组很像,永远是先有array[1],然后是array[2];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值