Oracle中sql语句因为排序导致查询结果集分页数据重复
如果出现多个SORT_ORDER 字段相同的时候,分页每次取出的结果集中ROWNUM不能固定下来。因为表A中ORDER BY SORT_ORDER ASC 按照SORT_ORDER 排序。将SORT_ORDER 字段按照1-n正常排序即可保证结果集固定,避免分页问题产生。记一次生产中因为排序导致的分页问题。
·
Oracle中sql语句因为排序导致查询结果集分页数据重复
记一次生产中因为排序导致的分页问题
问题产生
SELECT *
FROM (
SELECT TMP.*, ROWNUM AS ROW_ID
FROM (
SELECT *
FROM A
WHERE status = '1'
ORDER BY SORT_ORDER ASC
) TMP
WHERE ROWNUM <= ?
)
WHERE ROW_ID > ?
因为表A中ORDER BY SORT_ORDER ASC 按照SORT_ORDER 排序
如果出现多个SORT_ORDER 字段相同的时候,分页每次取出的结果集中ROWNUM不能固定下来
解决办法
将SORT_ORDER 字段按照1-n正常排序即可保证结果集固定,避免分页问题产生
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)