您的位置:首页 > 数据库 > Oracle

Oracle中的分页查询的简单初级阶段

2017-04-30 17:36 351 查看
--回忆之前的MYSQL分页

select * from teacher limit (pageIndex-1)*pageSize,pageSize

--oracle的分页 需要伪列? 什么是伪列!

--伪列 可以从表中查询的到!每个表都有这个伪列!但是不能对伪列

--进行增删改操作!伪列的值是不允许被改变的

--rowid:存储的是表中行的存储地址,是唯一的!可以使用rowID定位到表中的一行

--增长的规律: 最后一个字母。默认从A开始 A-Z a-z 0-9 + / 倒数第二位变成B

--rownum:返回的是查询结果中 行的序号!

--rownum只能对=1或者<=n进行筛选,不能对>n进行筛选

--如果想使用>n来查询,那么必须通过子查询建立临时表,

--然后让rownum成为临时表中的列,然后限定条件使用伪列的别名

 

--查询教师表中的薪水最高前5名

select * from

(select * from teacher

order by sal desc)

where rownum<6

 

--查询教师表中的薪水第5名

select * from(

select t.*,rownum rw from

(select * from teacher order by sal desc) t

)

where rw=5

--使用分析函数 排序

select * from

(

select t.*,dense_rank() over(order by sal desc) rank

from teacher t

)

where rank=5

--查询 教师表中的薪水最高5 -9

select * from(

select t.*,rownum rw from

(select * from teacher order by sal desc) t

)

where rw>=5 and rw<=9
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 分页