码迷,mamicode.com
首页 > 数据库 > 详细

Oracle中的伪列

时间:2016-06-06 10:24:28      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:

分页查询中,需要用到伪列rownum,代码如下:

 select * from (select rownum rn, name from cost where rownum <= 6) where rn >3;

可是第一次用rownum,第二次用rn,位置不能变,否则出错,第一次的rownum是oracle中的一个虚拟列,
rn是给这个rownum起的别名,也就是在子查询中的别名要在外查询中调用。

如果先按工资排序,再取出6到10号,可以写成:

select * from (select rownum rn, t.* from (select * from cost order by sal desc) t where rownum < 11) where rn >= 6;

同样注意什么时候用rownum,什么时候用rn.

 

这样写是不被允许的:

select rownum rn from cost where rn = 1;

要写成:

select rownum rn from cost where rownum = 1;

 

Oracle中的伪列

标签:

原文地址:http://www.cnblogs.com/DarrenChan/p/5562830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!