1.oracle数据库分页 select * from (select a.*,rownum rc from 表名 where rownum<=endrow) a where a.rc>=startrow 2.DB2数据库分页 Select * from (select rownumber() over() as rc,a.* from (select * from 表名 order by 列名) as a) where rc between startrow and endrow 3.SQL Server 2000数据库分页 Select top pagesize * from 表名 where 列名 not in(select top pagesize*page 列名 from 表名 order by 列名) order by 列名 4.SQL Server 2005数据库分页 Select * from (select 列名,row_number() over(order by 列名1) as 别名from 表名) as t where t.列名1>=startrow and t.列名1<=endrow 5.MySQL数据库分页 Select * from 表名 limit startrow,pagesize (Pagesize为每页显示的记录条数) 6.PostgreSQL数据库分页 Select * from 表名 limit pagesize,offset startrow (Pagesize为每页显示的记录条数.)
----------------------------------------------------------------
1.根据ROWID来分
select * from t_xiaoxi where rowid in(select rid from (select
rownum rn,rid from(select rowid rid,cid from
t_xiaoxi
执行时间0.03秒
2.按分析函数来分
select * from (select t.*,row_number() over(order by cid desc) rk
from t_xiaoxi t) where rk<10000 and rk>9980;
执行时间1.01秒
3.按ROWNUM来分
select * from(select t.*,rownum rn from(select * from t_xiaoxi
order by cid desc) t where rownum<10000) where
rn>9980;执行时间0.1秒
其中t_xiaoxi为表名称,cid为表的关键字段,取按CID降序排序后的第9981-9999条记录,t_xiaoxi表有70000多条记录
个人感觉1的效率最好,3次之,2最差
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22268274/viewspace-1117360/ ,如需转载,请注明出处,否则将追究法律责任。