[ORACLE]ORACLE 实现mysql中的limit 功能

项目从mysql迁移到ORACLE中遇到移植问题,mysql中支持limit 而ORACLE say no .

解决方法 利用ORACLE的伪列 rownum来控制。。

Mysql : select * from table limit 10

equl

ORACLE: select * from table where rownum <= 10

ORACLE 伪列介绍:

随数据字典一起自动创建的一个表,属于sys模式,任何用户都可以访问, 只有一列dummy(varchar2(1)),返回值也只有一行,

因此,在进行select 计算常量表达式或者伪列时常常用到.

oracle中的常用到的伪列:

序列

currval:序列當前值

nextval:序列的新值

level:层次查询中的层数

rowid:特定的行表識符

rownum:行序號

用法:

序列:

create   sequence   sequence1;

currval:

select   sequence1.currval   from   dual;

nextval:

select   sequence1.nextval   from   dual;

在insert

into中也可以:

insert   into   tableName(id1)

values(sequence1.nextval);