多表数据分页查询


多表数据分页查询在实际项目中会使用到。

SELECT * FROM (
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO,ROWNUM NOM FROM EMP
UNION
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO,ROWNUM NOM FROM EMP_ZYQ
)

这种写法的运行结果,最后按照ROWNUM 进行排序显示如下:

 

 我们可以看到 ROWNUM 中有重复的1 和 重复的2 等等。

可见使用这种方式进行分页显然是不行的。

 

那么应该怎样做,想法是,将两张表中的数据都查询出来之后,再进行总的分页。

如下

SELECT A.*,ROWNUM NOM FROM (
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP
UNION
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP_ZYQ
) A

这种写法的运行结果,最后按照ROWNUM 进行排序显示如下:

 

 

对上面的sql 进行一下优化:

SELECT A.*,ROWNUM FROM (
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP
UNION
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP_ZYQ
) A
WHERE ROWNUM BETWEEN 1 AND 100

就能够实现分页了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM