首先,我是相信oracle的,这个产品我任务不会出现这么低级的错误。
先看sql,其中 FLOORS有部分数据为空。
SELECT
*
FROM
STORAGE
WHERE
ACCOUNT_ID = '10001003'
AND LOCATION_NO = 'D1-2-9-5'
AND BILL_STATUS = '1'
AND QTY > 0
ORDER BY FLOORS DESC
开发兄弟反应这个sql出现了后面大约8页后存在部分数据重复的问题。
我给开发兄弟说的,不可能。于是写了下面的分页,逐页确认了没有问题。
SELECT
*
FROM
(
SELECT
mypager.*, rownum AS rnum
FROM
(
SELECT
*
FROM
STORAGE
WHERE
ACCOUNT_ID = '10001003'
AND LOCATION_NO = 'D1-2-9-5'
AND BILL_STATUS = '1'
AND QTY > 0
ORDER BY
FLOORS DESC
) mypager
WHERE
rownum <= 10 * 10
)
WHERE
rnum > 10 * (10 - 1)
开发兄弟说,我的分页跟开发平台的不一致。我坐等这个奇怪的问题分页sql。但是我觉得有一种可能就是故意为之。互联网产品有些会把上一页最后一条数据显示在本页第一条,让阅读者有分页过度的感觉。先这样分析,坐等了只能。