赞
踩
常用分页语句:
- SELECT
- *
- FROM
- (
- SELECT
- A.*
- , ROWNUM RN
- FROM
- (SELECT * FROM TABLE_NAME) A
- WHERE
- ROWNUM <= N
- )
- WHERE
- RN > M
此时的查询结果Oracle没有做任何的排序等,如果存储位置发生改变,分页查询有可能引起重复数据.
一般情况都会加上自定义排序功能,如时间倒叙:
- SELECT
- *
- FROM
- (
- SELECT
- A.*
- , ROWNUM RN
- FROM
- (
- SELECT
- *
- FROM
- TABLE_NAME
- ORDER BY
- CREATED_TIME DESC
- ) A
- WHERE
- ROWNUM <= N
- )
- WHERE
- RN > M
此时如果时间列一模一样,则出现分页数据显示重复的数据.
加上唯一主键排序:
ORDER BY CREATED_TIME DESC,ID
解决办法:
①sql语句中要有排序
②排序列如果没有唯一性,则后面跟上唯一列,如:主键
两个条件必须同时满足
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。