300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > oracle分页查询sql语句的rn Mysql和Oracle中的分页SQL语句

oracle分页查询sql语句的rn Mysql和Oracle中的分页SQL语句

时间:2023-07-30 02:17:45

相关推荐

oracle分页查询sql语句的rn Mysql和Oracle中的分页SQL语句

以前总结过一篇,Oracle分页查询语句的优化,当时对Oracle分页语句也着实花费了点时间记忆,不过今天在面试的时候,又考到了不同数据库的分页sql语句,对Oracle数据库的书写又存在了问题,以为很熟悉的分页sql书写起来也生疏了许多,这里再继续总结和整理一下,加深记忆。

Mysql的分页相对Oracle数据库来说,最是简单,通过提供的Limit关键字,即可方便的实现分页,如下:

SELECT

*

FROMtestTable

WHERE1=1

LIMIT1,20;

Oracle的分页sql,传统的是通过rownum,来进行分页,如下:

SELECT

*

FROM(SELECT

T1.*,

ROWNUMrn

FROM(SELECT

*

FROMtestTable

ORDERBYidDESC)T1

WHEREROWNUM<=20)

WHERErn>0;

不过上面的分页sql在数据量庞大的时候,越往后的分页查询会越缓慢,还有另外的一种效率很高的分页查询,通过rownum和rowid来进行分页,如下:

SELECT

t1.*

FROMtestTablet1,(SELECT

rid

FROM(SELECT

ROWNUMrn,

t.rid

FROM(SELECT

ROWIDrid

FROMtestTable

WHERE1=1)t

WHEREROWNUM<=20)

WHERErn>0)t2

WHERE1=1ANDt1.ROWID=t2.rid;

总结:分页的应用在各式各样的系统中,都是必不可少的组成部分,对分页sql的应用和优化也一直是程序开发中的重要成分,需要不断的记忆和总结。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。