玖叶教程网

前端编程开发入门

Oracle查询top n条数据,查询中间若干条数据:Oracle第一篇

order by 实现按照字段排序,rownum是虚拟列

查询top n条数据

在Oracle中经常是用order by 跟rownum

的组合来实现select top n的查询。

简单地说,实现方法如下所示:后面是具体例子。

select 列名1 ...列名n from

(

select 列名1 ...列名n

from 表名 order by 列名1

)

where userid <=N(抽出记录数)

order by userid asc

如下是一个已经创建的表,只需要关注有哪些字段即可:

create table TEST_TABLE1

(

idINTEGER,

nameNVARCHAR2(38),

sex CHAR(3),

age INTEGER,

salary NUMBER,

analysis_one NUMBER,

analysis_two NUMBER,

row_guid NVARCHAR2(38)

)

tablespace TESTSYS

pctfree 10

initrans 1

maxtrans 255

storage

(

initial 64K

next 1M

minextents 1

maxextents unlimited

);

取id值小于10的所有记录:

select id,name from (select id,name from test_table1 order by id) where id<=10 order by id asc

使用rownum 虚列

select id,name from (select id,name from test_table1 order by name) where rownum<=10 order by rownum asc

使用分析函数,取特定范围内的数据

select name,id,num from(

select name,id,rownum num from test_table1 where rownum <= 30

)where num >= 20;

上面是取表中的20到30行数据

rownum()为查询记录序列号

select * from (select rownum r,emp.* from emp) e where r between 3 and 6;

select * from (select rownum r, id ,namefrom test_table1) e where r between 1 and 5;

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言