oracle分页查询语句为什么子查询?

直接selecte.*,rownumfromempwhererownum<=2*4andrownum>(2-1)*4为什么不行?... 直接
select e.*,rownum
from emp
where rownum<=2*4
and rownum>(2-1)*4
为什么不行?
展开
 我来答
大话残剑
2016-10-04 · TA获得超过2217个赞
知道大有可为答主
回答量:1137
采纳率:56%
帮助的人:717万
展开全部

因为ROWNUM是对结果集加的一个伪列,即先查出结果集,之后再加上去的一个伪列。简单说 ROWNUM 是符合条件的结果序号,它总是从1开始排起的。所以你选出的结果不可能没有1,而有其他大于1的值。

如果要分页就必须先查询出所有记录,并增加ROWNUM列。然后在子查询中选择伪列符合条件的记录。

select * from (select e.*,rownum rn from emp e) where rn<=2*4 and rn>(2-1)*4;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式