【发布时间】:2020-10-11 09:47:40
【问题描述】:
我正在使用Oracle 11g 并且有一个复杂的连接查询。在这个查询中,我真的很想应用 OFFSET 和 LIMIT 以便在 Spring Batch Framework 中有效使用。
我经历了: How do I limit the number of rows returned by an Oracle query after ordering? 和
Alternatives to LIMIT and OFFSET for paging in Oracle
但事情对我来说不是很清楚。
我的查询
SELECT DEPT.ID rowobjid, DEPT.CREATOR createdby, DEPT.CREATE_DATE createddate, DEPT.UPDATED_BY updatedby, DEPT.LAST_UPDATE_DATE updateddate,
DEPT.NAME name, DEPT.STATUS status, statusT.DESCR statusdesc,
REL.ROWID_DEPT1 rowidDEPT1, REL.ROWID_DEPT2 rowidDEPT2, DEPT2.DEPT_FROM_VAL parentcid, DEPT2.NAME parentname
FROM TEST.DEPT_TABLE DEPT
LEFT JOIN TEST.STATUS_TABLE statusT ON DEPT.STATUS = statusT.STATUS
LEFT JOIN TEST.C_REL_DEPT rel ON DEPT.ID=REL.ROWID_DEPT2
LEFT JOIN TEST.DEPT_TABLE DEPT2 ON REL.ROWID_DEPT1=DEPT2.ID
ORDER BY rowobjid asc;
Above Query 给了我 1000 万条记录。
注意:两个数据库表都没有 PK,所以我需要使用 OFFSET 和 LIMIT。
【问题讨论】:
标签: sql oracle oracle11g window-functions oracle11gr1