如何解决oracle分页问题
来源:爱站网时间:2020-11-20编辑:网友分享
我们在做测试之后发现分页查询貌似不起作用,翻到第4页以后就可以发现数据是一样的,那么你知道如何解决oracle分页问题吗?本文将详细介绍。
我们在做测试之后发现分页查询貌似不起作用,翻到第4页以后就可以发现数据是一样的,那么你知道如何解决oracle分页问题吗?本文将详细介绍。
当时我就觉得很纳闷,不可能啊,分页组件应该是好的,咋可能有问题呢。带着疑问,我打开了自己的ide,在自己的机器上跑了一把,果然有问题。
有问题就要找问题:
首先把2条查询结果相同的sql打印出来到数据库中执行:
sql1:
复制代码 代码如下:
select *
from (select t.*, rownum rn
from (select t_e_id, t_e_name, t_e_tel, t_e_areacode
from (select t.eid t_e_id,
t.ename t_e_name,
t.etel t_e_tel,
t.areaid t_e_areacode,
t.biz_delete_time,
decode(areaid, '0730', '0', '1') orderseq
from vr_enterprise t
where t.eid not in (select eid from t_biz_erelation))
order by orderseq, biz_delete_time nulls last) t
where rownum where rn >= 19
sql2:
select *
from (select t.*, rownum rn
from (select t_e_id, t_e_name, t_e_tel, t_e_areacode
from (select t.eid t_e_id,
t.ename t_e_name,
t.etel t_e_tel,
t.areaid t_e_areacode,
t.biz_delete_time,
decode(areaid, '0730', '0', '1') orderseq
from vr_enterprise t
where t.eid not in (select eid from t_biz_erelation))
order by orderseq, biz_delete_time nulls last) t
where rownum where rn >= 12
结果显示大多数行是相同的。
为了找到问题所在,只有先一步一步的精简化sql,看在哪一步出的问题。
于是找到了,问题出现在where rownum
表示想不通啊。。。。。
没办法,只好baidu了,baidu了半天,都没人给个解释啊。。。。。
后来同事说,换个写法试试,于是改了另一种写法,如下:
上文就是小编介绍如何解决oracle分页问题的内容,看完后你明白了吗?如果你想了解更深一点的可以进入爱站技术频道进行了解哦!