oracle分页有什么用,oracle分页就用这一句

分页的宗旨是控制查询出来的数据个数,下面这条语句对于Oracle分页已经足够了。

(注:该语句只能用于Oracle)

SELECT * from (SELECT temp.*, ROWNUM RN from (SELECT * from USERS ORDER BY ID DESC) temp) WHERE RN > 0 AND RN <= 10

SELECT *

from (SELECT AA.*, ROWNUM RN

from (SELECT * from USERS ORDER BY ID DESC) AA)

WHERE RN > 0 AND RN <= 10

说明:

其中USERS为数据库表名

SELECT * from USERS ORDER BY ID DESC

这一句是不进行分页的查询。

而ROWNUM <= 10和RN >0用于控制每页要显示的数据条数,我这里用ROWNUM <= 10和RN >0表示每页显示10条数据,那么要进入下一页,则ROWNUM <= 20和RN >10

上面的这两个数值只需要你在程序中动态传入值,例如在struts或servlet中动态传入两个参数就可以进行分页控制。

MSSQL SYBASE下面用top 来分页

POSTGRESQL MYSQL就直接用limit更简单了

在oracle 下面有4种方法

oracle分页技术2007年08月13日 星期一 23:08两种分页技术,第二种效率高多了

1. select * from

(select rownum rn,t.* from table t )

where rn <50 and rn>=1

2. select * from

(select rownum rn,t.* from table t rownum<50)

where rn>=1

带排序要求的分页,在9i以上的环境推荐使用分析函数

select * from

(select row_number() over(order by esn) rn,esn,akey from as_esn_info )

where rn <50 and rn>=1

(以上方法验证过)

或者以下

(1)minus差分页 :select * from table where rownum<=10 minus select * from table where rownum<=5

(2)rownum伪列分页 :select * from (select rownum tid,t.* from table t  where rownum<=10) where tid>5

(3)notin相反分页:select * from table where id not in(select id from table where rownum<=5) and rownum<=5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值