oracle 中要提取前三名和后三名,而且要一次提取,如何用rownum实现
解决方案 »
- 创建物化视图时出现ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小
- ORA-12514:TNS:无法解析指定的连接标识符(怎么解决)
- 为什么select * from a的速度比select 具体字段from a快很多
- 请问下,如何修改 数据库链接。
- 求一条sql
- sql server2000下建的数据库和写好的存储过程能导入Oracle里面来用吗?
- Oracle中,如何找到一个字符串出现在哪个表的那个字段中?
- 数据库共享池 触发器错误
- select语句中结果的显示问题
- plsql中有一个用户db_t1,如何让其他的非DBA用户无法访问db_t1下的表,只有DBA权限的用户可以访问?
- 关于ORACLE支持分布式事务的问题
- 再次提问:高级问题: 每天固定时间触发的触发器如何写
---------- -------- ----------
1 aa 90
1 bb 80
1 猪八戒 60
1 孙悟空 55
1 唐僧 15
1 沙和尚 5
1 楼主 99已选择7行。select a.class,a.name,a.score from
(select aa.*,row_number()
over(partition by class order by score) mc from aa) a
where a.mc <= 3
union all
select a.class,a.name,a.score from
(select aa.*,row_number()
over(partition by class order by score desc) mc from aa) a
where a.mc <= 3
/ CLASS NAME SCORE
---------- -------- ----------
1 沙和尚 5
1 唐僧 15
1 孙悟空 55
1 楼主 99
1 aa 90
1 bb 80已选择6行。
union
select * from (select * from test order by col) where rownum>=3
select * from (select * from p_test Where ljjc>0 order by col) where rownum<=3
union
select t.* from (select * from p_test Where ljjc>0 order by col Desc) t Where Rownum<=3
union all
select top 3 * from p_test order by col desc