[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);