oracle SQL简介(四)
来源:互联网 发布:ubuntu如何读取u盘 编辑:程序博客网 时间:2024/05/16 01:53
6. top n查询
select rownum rn ,a.* from (select * from emp order by sal desc ) a where rownum<=3;
select b.* from (select rownum rn ,a.* from (select * from emp order by sal desc ) a where rownum<=10 ) b where rn>=3;
select * from (select rownum rn,b.* from (select a.* from emp a order by sal desc) b )
where rn between 3 and 10;
分析函数的top-n查询:
select b.* from (select row_number() over ( order by sal desc) rn,a.* from emp a) b
where rn between 3 and 10;
7. 序列
create sequence s_emp
increment by 1
start with 1
maxvalue 99999999
nominvalue
nocycle
nocache
noorder;
解释:
create sequence sequence_name
increment by 1 --表示从1开始计值
start with 1 --每次增长1
nomaxvalue / maxvalue 999999 --有两个可选值,要么无最大值,要么指定最大值
minvalue 1 / nominvalue --同maxvalue
cycle --表示达到最大值后从头开始,也可以为nocycle
cache 10 --指定cache的值。如果指定CACHE值,oracle就可以预先在内
存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle
自动再取一组到cache。使用cache或许会跳号, 比如数据库突然不正常down
掉(shutdown abort),cache中的
sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。
order;--指定排序
序列提供两个方法:
nextval和currval。nextval是取序列的下一个值,一次nextval会增加一次sequence的值;currval是取序列的当前值。
第一次nextval返回的是初始值;随后的nextval会自动增加你定义的INCREMENT BY值,然后返回增加后的值。currval总是返回当前sequence的值,但是在第一次nextval初始化之后才可以使用currval,否则会出现出错。
select s_emp.nextval from dual;
select s_emp.currval from dual;
- oracle SQL简介(四)
- Oracle扩展PL/SQL简介(四)
- SQL语言简介(四)
- oracle SQL简介(一)
- oracle SQL简介(二)
- oracle SQL简介(三)
- oracle SQL简介(五)
- oracle“SQL Trace”简介
- oracle “SQL Trace”简介
- oracle PL/SQL简介
- Oracle PL/SQL简介
- ORACLE SQL性能优化系列(四)
- ORACLE SQL性能优化系列(四)
- ORACLE SQL性能优化系列(四)
- ORACLE SQL性能优化(四)
- ORACLE SQL性能优化(四)
- (转)oracle sql%四种用法
- Oracle PL/SQL 学习笔记(四)
- Java多线程设计模式-学习笔记-Thread Per Message模式.
- Linux下的段错误产生的原因及调试方法(Zz)
- sql 技巧
- W3C教堂
- oracle SQL简介(三)
- oracle SQL简介(四)
- asp.net中绘制柱状图
- vi的详细指令
- MSSQL简单分页存储过程
- 同一个service调用多个dao的事务问题
- ubuntu下sudo和root帐户关系的小总结
- 如何选用开源代码
- ubuntu命令大全
- 使用svn命令行递归的添加文件