Oracle中的伪列

Posted 陈驰字新宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中的伪列相关的知识,希望对你有一定的参考价值。

分页查询中,需要用到伪列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中的伪列的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中的伪列

Oracle数据库的伪列

oracle数据库基本操作

oracle04--伪列

(转)Oracle中的rownum,ROWID的 用法

浅析SQL Server数据库中的伪列以及伪列的含义