这条分页语句有问题吗?

gundamff 2013-01-29 02:47:39
select * from (select row_.*, rownum rownum_ from (
select userinfo.id as "id"
from tbl_user_teacher teacherinfo,tbl_user_info userinfo
where 1=1
and teacherinfo.id = userinfo.id
and userinfo.status = 1
and userinfo.region_id is not null
order by userinfo.region_id asc ) row_
where rownum <= 20 )
where rownum_ >=11
...全文
406 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
izj 2013-01-31
  • 打赏
  • 举报
回复
引用 8 楼 gundamff 的回复:
SELECT COUNT(*) FROM (SELECT row_.id, rownum rn1 FROM (SELECT ui.id FROM tbl_user_info ui ORDER BY region_id ) row_ WHERE rownum <= 10 ) t1 , (SELECT row_.id, rownu……
那你在group by region_id 去除重复数据。。
gundamff 2013-01-30
  • 打赏
  • 举报
回复
SELECT COUNT(*) FROM (SELECT row_.id, rownum rn1 FROM (SELECT ui.id FROM tbl_user_info ui ORDER BY region_id ) row_ WHERE rownum <= 10 ) t1 , (SELECT row_.id, rownum rn2 FROM (SELECT ui.id FROM tbl_user_info ui ORDER BY region_id ) row_ ) t2 WHERE t1.rn1 = t2.rn2 AND t1.id <> t2.id; 这个执行结果是 10 因为region_id有重复的,如何换成id就没没有了
gundamff 2013-01-29
  • 打赏
  • 举报
回复
其他表都可以,只有这个表order by这个字段有这个情况.....
izj 2013-01-29
  • 打赏
  • 举报
回复
引用 2 楼 gundamff 的回复:
翻页结果不变
你排除其他因素。。。。建一张裸表。。。看看翻页结果是否不变。。
善若止水 2013-01-29
  • 打赏
  • 举报
回复
你执行的时候报错了吗? 我看你的意思是,取region_id的第11到20名,没有问题。
LoongSH 2013-01-29
  • 打赏
  • 举报
回复
select t2.* from ( select t1.* , rownum rn from ( select * from emp )t1 where rownum<=10 )t2 where rn>4;
gundamff 2013-01-29
  • 打赏
  • 举报
回复
region_id 有聚簇索引 会影响上面的分页??
gundamff 2013-01-29
  • 打赏
  • 举报
回复

翻页结果不变
izj 2013-01-29
  • 打赏
  • 举报
回复
目测。。。3层SQL嵌套。。。貌似没问题。。

17,075

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧