oracle分页查询语句为什么子查询?
直接selecte.*,rownumfromempwhererownum<=2*4andrownum>(2-1)*4为什么不行?...
直接
select e.*,rownum
from emp
where rownum<=2*4
and rownum>(2-1)*4
为什么不行? 展开
select e.*,rownum
from emp
where rownum<=2*4
and rownum>(2-1)*4
为什么不行? 展开
1个回答
展开全部
因为ROWNUM是对结果集加的一个伪列,即先查出结果集,之后再加上去的一个伪列。简单说 ROWNUM 是符合条件的结果序号,它总是从1开始排起的。所以你选出的结果不可能没有1,而有其他大于1的值。
如果要分页就必须先查询出所有记录,并增加ROWNUM列。然后在子查询中选择伪列符合条件的记录。
select * from (select e.*,rownum rn from emp e) where rn<=2*4 and rn>(2-1)*4;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询