多表數據分頁查詢


多表數據分頁查詢在實際項目中會使用到。

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