oracle的查询,因为能获取到查询结果的rownum,就想着直接在查询条件后面做翻页,而且首页确实是正常查询到了。后面才发现翻页是空的。。。
这是因为rownum排序是在查询结果才分配的。所以应该把查询结果作为子查询,在外查询应用排序好的rownum。
错误示范:
sql
select t.* ,rownum from student_infot where user_name like '%琴%' and rownum>0 AND rownum<10
正确翻页
sql
SELECT * FROM (
select t.* ,rownum rn from student_info t where user_name like '%琴%' and
rownum>0 AND rownum<10) WHERE rn>10 AND rn<20