rownum为虚拟列,不是实际物理列
select rownum,t.code from sys_config t; // 取得行数和code列
select rownum, t.code from sys_config t where rownum <=20 order by t.code; // 取得行数<=20,并按code排序,排序失败
select rownum, code from (select * from sys_config order by code) where rownum <=20; // 取得前20行成功
select rownum, code from (select * from sys_config order by code) where rownum>=1 and rownum <=20; // 取得1到20行成功
select rownum, code from (select * from sys_config order by code) where rownum>=2 and rownum <=20; // 取得2到20行失败
select rn,code from (select rownum as rn,code from (select * from sys_config order by code)) where rn >=2 and rn <=20; // 取得2到20行成功
最后一行为分页查询SQL语句,其他分页语句:
select * from (select rownum as rn, T.* from (select * from table_name) T where rownum<40) where rn>21; // 效率高些
select * from (select rownum as rn, T.* from (select * from table_name) T) where rn between 20 and 40; // 效率低些
参考连接文章: