1、有时间字段, 根据时间条件排序,取前十条和后十条
(1)前十条:
select * from (select * from tab_name a order by date_col )
where rownum<11
(2)后十条:
select * from (select * from tab_name a order by date_col desc)
where rownum<11
2、没有时间字段, 直接根据物理存储顺序,取前十条和后十条
(1)前十条:
select * from (select * from tab_name a order by rownum)
where rownum<11
(2)后十条:
select * from (select * from tab_name a order by rownuml desc)
where rownum<11
由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum的组合来实现select top n的查询。
简单地说,实现方法如下所示:
select 列名1 ...列名n from(select 列名1 ...列名n
from 表名 order by 列名1)where rownum <=N(抽出记录数)
order by rownum asc
如:select id,name from (select id,name from student order by name) where rownum<=10 order by rownum asc
按姓名排序取出前十条数据
附:取100-150条数据的方法1.
最佳选择:利用分析函数
row_number() over ( partition by col1 order by col2 )比如想取出100-150条记录,按照tname排序
select tname,tabtype from (
select tname,tabtype,row_number() over ( order by tname ) rn from tab
) where rn between 100 and 150
2. 使用rownum 虚列
select tname,tabtype from (
select tname,tabtype,rownum rn from tab
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)