开发环境:vs2010 C# ; oracle
出现问题:执行 select * from ( select a.*, rownum rownum_ from( select distinct A,B,C,D,E where A IS NOT NULL AND B IS NOT NULL Order by E ) a where rownum <= :endsize ) where rownum_ > :statesize 时,总时只能查到第一页的数据。
问题排查:
(1)原以为是特定环境下order by E 后面没有加asc 后有所变化,后来加上asc 后依旧只显示第一页; 改后desc后就可以显示其他页(-_!!)
(2)不知道就百度一下,你懂的,结果字段E并没有与Oracle关键字重复;
(3)其他字段不存在这个问题,且当仅有排序单个字段E的时候才会出现这种情况
最终处理:
整了一下午也没找出问题根源,因为这种情况影响到用户的操作习惯,只能加个判断,仅当E进行升序查询时,固定加上字段A一起排序了。先处理掉,不影响用户操作,再来寻根寻源。这种诡异情况值得标记一下。