oracle,mssql,mysql数据库分页时所用的sql语句

oracle,mssql,mysql数据库分页时所用的sql语句

---1.oracle

SELECT * FROM ( SELECT row_.*, rownum rownum_ FROM (...... ) row_ WHERE rownum <= ?) WHERE rownum_ > ?

先按查询条件查询出从0到页未的记录.然后再取出从页开始到页未的记录.(据说是效率最高的:))

---2. sql servler

i:select top [pagesize] * from table where id not in ( select top [pagesize*(currentpage-1)] id from table [查询条件] order by id ) and [查询条件] order by id

先按查询条件排除 pagesize*[pagesize*(currentpage-1)]以前的纪录。&&再按查询条件把他以后的记录 top[pagesize] 出来.

ii:

select top PageSize * from TableName where id > (select max(id) from (select top startRecord-1 id from TableName [查询条件] order by id) as TempTable) [查询条件] order by id

先取得开始该页开始时的最大ID,然后再从最大ID出top[pagesize]

(听说记录组超过10万第二条好过第一条)

---3.mysql

select * from table [查询条件] order by id limit ?,?

这个都不用说了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值