Oracle分页

78.  他这个用Oracle特有的性质来做分页,要用到三层嵌套,为什么,他还搞了一个root用户不显示的功能。也就是说查询的时候不显示系统管理员的功能。

 

用*  不太明确,不用*太麻烦,各有优缺点。

select * from t_user where user_id <> 'root'; 现在root就没有了,  还要加order by user_id;  做这种集合查询一般要order by的。不能随便就出来。这样就排了一下序。

 

select * from t_user where user_id <> 'root' order by user_id;

 

select rownum * from t_user  where user_id <> 'root' order by user_id;这样写会出错。不能直接*,还要给别名

 

select rownum , t.* from t_user t  where user_id <> 'root' order by user_id;

 

现在来嵌套,嵌套的目的就是把nownum转出来嘛,怎么用,加循环,先写

select from ()  再把下面的东西放进去,就可以了

 

select rownum * from t_user  where user_id <> 'root' order by user_id;

 

 

select rownum rn  t.* from (

 

select rownum * from t_user  where user_id <> 'root' order by user_id

) t;  通过这个t可以把所有的东西查上来。那就是t.*,另外可以把nownum拿上来。拿上来,赋值给一个字段,rownum rn现在这个字段和nownum就没有关系了。

 

 

现在还要改,过滤一下。

select rownum * from t_user  where user_id <> 'root' order by user_id

) t where rownum <=2;这不就是查前二条吗?  如果改成<=4,那么现在的情况是全部查出来了。还得过滤一下,想用rn就还得来一层循环。

select * from (

 

select rownum * from t_user  where user_id <> 'root' order by user_id

) t where rownum <=4

 

 

) where rn>2;   这不就是查第二页不。写这种循环,里面开始写起,比较简单,一层一层明白你想干吗。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值