select * from (select * from a order by 成績 asc/desc) where rownum<=n
解决方案 »
- oracle 10g在windows平台下占用过多内存不肯释放?
- win2000 service的系统,我装的是oracle 8i 微软补丁打了用不了
- 关于多表查询的问题?
- oracle的rowid二三问
- 急急急急急急急急急急急 数据插入问题 有点麻烦 高手赐教 谢谢
- 北大青鸟笔试题
- 各位我想實現如下功能,即在一個表的TRIGGER中改動自己的記錄,SQL SERVER是可以的,可是ORACLE不行,報ORA-04091的錯,請問該如何解決???
- 小弟初用Oracle各位同行先进指点一二?关于Imp的问题!!!
- ASP中执行SQL语句的问题(Oracle数据库),紧急求救!!!!!!
- 请问:连续insert 20多万条记录,怎样才能够提升效率啊?
- 怎样用Trigger实现数据完整性(急急)
- 我的SQL语法访问了两个用户怎么办?PRO*C高手请进!!!!
(select id,name,rank() over(order by sal desc) rk from table_name order by sal desc)
where rk<=nor:
select * from
(select id,name,rank() over(order by sal) rk from table_name order by sal)
where rk<=n
select * from (select rownum id,a.* from
(select * from tbname order by score) a) b
where b.id>=(select count(*)-n from tbname);
我的oracle版本是805。
例子:
14:15:49 SQL> select * from tcn;AAA BBB
---------- ---------
b 5
a 1
a 3
a 5
a 6
a 4已选择6行。实际:51
14:15:55 SQL> select * from (select * from tcn order by bbb desc) where rownum<=3;AAA BBB
---------- ---------
a 6
b 5
a 5实际:170
14:16:21 SQL>
是不是805中不支持嵌套的select中用排序呀。
试试这样
create view tcn_v as
select *
from tcn
order by bbb desc;然后
select * from tcn_v where rownum<=3;
select *
from tcn
order by bbb desc;
也不支持嵌套的排序,报的错:ORA-00933: SQL 命令未正确结束。估计原因也和上面的差不多啊!
大侠们再帮帮忙啊!先谢谢上面的了。
也不允许子查询。贴主的这个问题有点难了。
最好的法子是
升级。
或者麻烦点,做存储过程用游标来排序