select * from (select * from table where 条件 and rownum<=8)
select * from 表 where rownum <= 8 其他条件自己加
注意:rownum只能用符号(<、<=、!=)。 select * from tablename where rownum != 10;返回的是前9条记录。 不能用:>,>=,=,Between...and。由于rownum是一个总是从1开始的伪列,Oracle 认为这种条件 只能用 select * from table_name where rownum < N minus select * from table_name where rownum < M就可以选中 M 与 N之间的。rownum是伪列,代表已经查询到的记录的行序号。还未查到的记录是没有rownum的。 因此ROWNUM>=1 AND ROWNUM<=10是可以查到前10条记录但是不能证明 ROWNUM>=500 AND ROWNUM<=600可以查处500~600的501条记录。 ROWNUM>=1 AND ROWNUM<=10在逻辑上相当于ROWNUM<=10 正确的方法是: select * from (select Z_YXJK_DMDH.*, rownum as rid from Z_YXJK_DMDH where rownum<=600) where rid > 500 或者 select * from Z_YXJK_DMDH where rownum<=600 minus select * from Z_YXJK_DMDH where rownum<=500
fr (sl where rownum <=8)
....
from (select * from table where 条件 and rownum<=8)
其他条件自己加
select * from tablename where rownum != 10;返回的是前9条记录。
不能用:>,>=,=,Between...and。由于rownum是一个总是从1开始的伪列,Oracle 认为这种条件 只能用
select *
from table_name
where rownum < N
minus
select *
from table_name
where rownum < M就可以选中 M 与 N之间的。rownum是伪列,代表已经查询到的记录的行序号。还未查到的记录是没有rownum的。
因此ROWNUM>=1 AND ROWNUM<=10是可以查到前10条记录但是不能证明
ROWNUM>=500 AND ROWNUM<=600可以查处500~600的501条记录。
ROWNUM>=1 AND ROWNUM<=10在逻辑上相当于ROWNUM<=10
正确的方法是:
select * from (select Z_YXJK_DMDH.*, rownum as rid from Z_YXJK_DMDH where rownum<=600) where rid > 500
或者
select * from Z_YXJK_DMDH where rownum<=600
minus
select * from Z_YXJK_DMDH where rownum<=500