oracle查询分页伪列,Oracle分页查询=======之伪列的使用

========伪列==========

在Oracle数据库中,伪列不存在表中,但是可以从表中查询到

例如:SELECT ROWID 伪列,tname教师姓名 FROM teacher;

5a44ed0741cdf576db7bfe5d65b82aa6.png

=========列号rownum==========

查询rownum返回表中数据的行号;

例如:SELECT ROWNUM 列号,tname 教师,sal 薪资 FROM teacher;

7b2011382b08bdf3005eeaf6e744df8b.png

其中rownum只能在条件中做=1或者小于 的操作

例如:SELECT tname 教师名,sal 薪资 FROM teacher WHERE ROWNUM<8;

6789fcab854433413a5f36ac12b33767.png

或者:SELECT tname 教师名,sal 薪资 FROM teacher WHERE ROWNUM=1;

d01eb3388129c1bffc94b0fc5cb810c4.png

如果要进行其他操作:>  或者 =大于1的值  就必须使用伪列做为临时表真正得列,通过子查询拉查询

SELECT * FROM (SELECT t.*,dense_rank() OVER (ORDER BY sal DESC) nums FROM teacher t )WHERE nums=5;

cf9261a022d46524a68ea216402d3a87.png

查询第五名到第九名新字的老师信息

SELECT * FROM (SELECT t.*,dense_rank() OVER (ORDER BY sal DESC) nums FROM teacher t )WHERE nums>=5 and nums<=9;

5874047bb5d96ac04cd7a10a528cb5ae.png

或者SELECT * FROM (SELECT mm.*,ROWNUM nums FROM (SELECT * FROM teacher ORDER BY sal DESC)mm) WHERE nums>=5 AND nums<=9;

将SELECT * FROM teacher ORDER BY sal DESC的查询结果国为一个临时表从中查询所有教师信息和rownum,并将rownum座位一个真是的列放入到查询的结果中,再从查询的结果中查查询rownums列从5到9 的教师信息

ca98fb690a93147921cf39b1f2618b4e.png

原文:http://www.cnblogs.com/kuoAT/p/6180768.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值