rt,好像只能where rownum<数字 order by 排序的列
高手们有没有什么方法啊?
高手们有没有什么方法啊?
解决方案 »
- ######## 关于oracle text的讨论 #######
- oracle enterprise manager console 找不到的问题(急)
- ORA-24338:未执行语句句柄 这是个什么错误?
- 哪裡有進行oracle 高級複製的工具, 非常感謝!!!
- 怎样对oracle9.2的数据库进行优化;在线等待!!!急!!!
- 求一个简单的触发器代码
- 有谁知道:如何以系统时间的日(Day)为1时,触发修改一个系统变量的触发器内容?
- 关于Oracle的安装问题
- 如何使oracle表的行记录不区分大小写
- 紧急问题,关于数据库链路的连接,在线等待急急急急急!@!!!!
- oracle 连接
- 存储过程的权限
select * from (select * from t order by col1) where rownum<10;
--使用rownum,但是rownum只能是<,<=
scott@YPCOST> select * from (select * from emp order by sal desc) where rownum<=3; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
7839 KING PRESIDENT 1981-11-17 00:00:00 5000 10
7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 900 20
7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 900 20--或者使用分析函数,这样就可以查询工资排名3到6位的
已写入 file afiedt.buf 1 select * from (select t.*,row_number() over(order by sal desc) rn from emp t)
2* where rn between 3 and 6
scott@YPCOST> / EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO RN
---------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- ----
7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 900 20 3
7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 900 20 4
7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30 5
7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10 6