用子查询解决 例如 SELECT A.C1, A.TTT, A.DDD FROM (SELECT ROWNUM AS C1, TTT, DDD FROM TABLE WHERE ROWNUM < 100) A WHERE A.C1>80
select a.n,a.* from (select tab.*,rownum n from tab where rownum<101) a where a.n>80;
具体一点好吗? month char(6) --月份 sell number(10,2) --月销售金额 create table sale (month char(6),sell number); insert into sale values('200001',1000); insert into sale values('200002',1100); insert into sale values('200003',1200); insert into sale values('200004',1300); insert into sale values('200005',1400); insert into sale values('200006',1500); insert into sale values('200007',1600); insert into sale values('200101',1100); insert into sale values('200202',1200); insert into sale values('200301',1300); insert into sale values('200008',1000); commit; 我想看5到10的记录怎么写啊?
select a.* from (select sale.*,rownum n from sale where rownum<11)a where a.n>4;
但是不能使用>80,实际上>n(n>0)都不行。
因为就相当于你取了一些数再从1开始加上个行号,怎么可能从2开始呢?如果你要取80到100行的就用临时表解决。
例如
SELECT A.C1, A.TTT, A.DDD
FROM (SELECT ROWNUM AS C1, TTT, DDD FROM TABLE WHERE ROWNUM < 100) A
WHERE A.C1>80
month char(6) --月份
sell number(10,2) --月销售金额
create table sale (month char(6),sell number);
insert into sale values('200001',1000);
insert into sale values('200002',1100);
insert into sale values('200003',1200);
insert into sale values('200004',1300);
insert into sale values('200005',1400);
insert into sale values('200006',1500);
insert into sale values('200007',1600);
insert into sale values('200101',1100);
insert into sale values('200202',1200);
insert into sale values('200301',1300);
insert into sale values('200008',1000);
commit;
我想看5到10的记录怎么写啊?