oracle的分页

本文详细介绍了在Oracle数据库中实现分页查询的各种方法,包括利用rownum进行前N条记录的查询,以及如何通过嵌套查询获取特定范围内的记录。同时,对比了MySQL和SQL Server的分页语法,为数据库开发者提供了实用的查询技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*************需求1: 查询emp表中前5个员工*************************


使用伪列 rownum

每一张表 都有一列 字段名叫做 rownum 数据类型 number

这一个字段用来标示表中的每一条记录 第一条记录 rownum 值是1

第二条是2 依次类推 这个列是看不到的

 

select * from emp where rownum<=5


*************需求2: 查询emp表中第6-10名员工*************************

oracle的rownum 有个问题 只能和<=连用 ,>=就用不了了 如何解决?


口诀: 小于直接查、大于加行号


select * from
(select e.*,rownum r from emp e)
where r>=6 and r<=10

*************需求3:薪水最高的前五名雇员 (两层嵌套)*************************

select * from
(select * from emp order by sal desc)

where rownum<=5


*************需求4:薪水最高的6-10名雇员 (三层嵌套)*************************


select * from
(select t.*,rownum r from
(select * from emp order by sal desc) t)

where r>=6 and r<=10

 

**********************面试题: 各种数据的分页语句*************************
第一页 显示 1-10

第二页 显示 11-20

...

1.oracle


使用rownum

select * from emp where rownum<=5


2. mysql

select * from limit 0,5

第一个参数 0 从第一条开始

第二个参数 5 取5条

select * from limit 5,5 - 6-10条


3.sql server

top n

select top 5 * from emp

 

转载于:https://www.cnblogs.com/MrTanJunCai/p/9907397.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值