select * from (select rownum jl,a.* from tzb a) where jl between 90 and 100或者 select * from tab where rownum < 100 and not exists (select 1 from tab where rownum<90)
举个例子select r,e.* from (select rownum r,last_name,salary from ( select last_name,salary from employees order by nvl(salary,0) desc)) e where r between 90 and 100;
select * from tab where rownum < 101 minus select * from tab where rownum<89;
select rw ,e.* from (select rownum rw ,lname,fname from abc where rownum<30) where rw>=0这样的写法速度才是最快的. select * from tab where rownum < 101 minus select * from tab where rownum<89; minus运算效率太慢了...
select rw ,e.* from (select rownum rw ,lname,fname from abc where rownum<30) where rw>=0 -------------------------不知道e . 是从那里来的 是abc 这个表吗?
select rw ,e.* from (select rownum rw ,lname,fname from abc where rownum<=100 order by lname) where rw>=90如果表abc有lname的索引,这条SQL就可以取以lname排序的第90到第100行记录。
(select rownum jl,a.* from tzb a)
where jl between 90 and 100或者
select * from tab
where rownum < 100 and not exists
(select 1 from tab where rownum<90)
select last_name,salary from employees order by nvl(salary,0) desc)) e
where r between 90 and 100;
minus
select * from tab where rownum<89;
select * from tab where rownum < 101
minus
select * from tab where rownum<89;
minus运算效率太慢了...
-------------------------不知道e . 是从那里来的 是abc 这个表吗?