专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Oracle技术

一个简单的有关问题

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
一个简单的问题
如何选择一个表中前面5行数据和后面5行数据呢?rownum好像不行啊?怎么用呢?

------解决方案--------------------
SQL code

select *
  from (select t.*, 
               row_number() over(order by empno) as r1,           -- 顺序
               row_number() over(order by empno desc) as r2       -- 倒叙
          from emp t)
 where r1 <= 5 or r2 <=5
 order by empno;

------解决方案--------------------
SQL code
rownum可以实现,只不过要用子查询来实现,因为rownum是不可以直接用<n(n>1)

不过如果在外面用一层子查询就可以了阿
select * from (select id,name, rownum rt from table order by id) where rt <=5
union all
select * from (select id,name, rownum rt from table order by id desc) where rt <=5

--ps:如果有不足10条数据的情况,可以使用union 去掉重复数据

------解决方案--------------------
SQL code

原数据是:1-20
select rn 
from
(       
     select rownum rn from dual connect by rownum<21
)
where rn<6 or rn>15

--结果显示:
1    1
2    2
3    3
4    4
5    5
6    16
7    17
8    18
9    19
10    20
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: