`
lsy
  • 浏览: 121424 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

小记:使用Oracle rownum分页

阅读更多
在oracle数据库中查询结果的行号使用伪列ROWNUM表示(从1开始)。但rownum是在查询之后排序之前赋值的,所以查询employee按birthday排序的第100到120条记录应该这么写:
select * from(

               select my_table.*, rownum as my_rownum from (

                           select name, birthday from employee order by birthday

               )my_table where rownum <120

) where my_rownum>=100

另外对记录的页数算法应该是:

page = (rowCounts + pageSize-1) /pageSize;
分享到:
评论
1 楼 老竹枝 2012-05-23  
为什么不直接写成下面这样?还省了一个子查询
select my_table.*, rownum as my_rownum from (    
     select name, birthday from employee order by birthday    
)my_table where rownum <120  AND my_rownum>=100

相关推荐

Global site tag (gtag.js) - Google Analytics