oracle mysql limit用法_mysql以及oracle数据分页的sql示例(limit和Rownum的用法) | Soo Smart!...

对数据查询结果集截断获取,来实现数据库层的分页。在mysql以及Oracle下的实现如下:

MySQL下使用limit和offset,Oracle使用Rownum。

MySQL下limit和offset的两种写法:

SELECT * FROM tablex LIMIT[offset,] rows

SELECT * FROM tablex LIMIT rows OFFSET offset

例如:

//查询学生表中年龄大于10岁的同学,从记录行21开始返回结果,最大返回10条记录。

select * from student where age>10 limit 20,10

//或这样写

select * from student where age>10 limit 10 offset 20

ORACLE数据库使用ROWNUM来实现LIMIT相同功能:

SELECT * FROM table WHERE ROWNUM<10;

但不要想当然的认为实现OFFSET功能就是简单的ROWNUM>5 and ROWNUM<10。好吧,最初我也是这么认为的,但是ORACLE的ROWNUM实现认为这个条件不成立。常见的写法有下面几种:

//方法1:

SELECT * FROM tablex WHERE rowid NOT IN(SELECT rowid FROM tablex WHERE ROWNUM<=5) and ROWNUM<=10

//方法2:

SELECT * FROM (SELECT A.*, ROWNUM r FROM (SELECT * FROM tablex) A WHERE ROWNUM <= 10) B WHERE r > 5

//方法3:

SELECT * FROM table WHERE ROWNUM<10

MINUS

SELECT * FROM table WHERE ROWNUM<5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值