Oracle中分頁查詢和聯表查詢


1.使用ROWNUM偽列查詢

1.1.查詢十條數據(rownum<=n)

SELECT ROWNUM,A.* FROM v_sjjx_unit_info A WHERE ROWNUM<=10  

 

1.2.查詢實體十條數據(between...and...)

SELECT * FROM v_sjjx_xsjbsjxx WHERE ROWNUM BETWEEN 0 AND 10

 

1.3.查詢第二到第十條數據

SELECT * FROM (SELECT b.*,ROWNUM r FROM v_sjjx_unit_info b WHERE ROWNUM <= 10) WHERE r >2

 

注:查詢中的rownum必須要有別名,否則還是不會查出記錄來,這是因為rownum不是某個表的列,如果不起別名的話,無法知道rownum是子查詢的列還是主查詢的列。

1.4.兩表聯查,學生視圖和學籍視圖以學號為關聯條件,查詢兩視圖部分字段信息

SELECT * FROM
(SELECT ROWNUM RN,XZ.*
FROM (SELECT XS.XM,XJ.YXSH,XS.XH,XJ.ZYM,XS.XBM,XJ.SZNJ,XJ.XZ FROM v_sjjx_xsjbsjxx XS, v_sjjx_xjjbsjxx XJ WHERE XS.XH = XJ.XH ) XZ
WHERE ROWNUM<=10
) WHERE RN >(1-1)*10

 

 

2.分頁查詢另兩種方法

2.1.使用MINUS(減去)方法   大減小

SELECT * FROM v_sjjx_unit_info WHERE ROWNUM<20 MINUS SELECT * FROM v_sjjx_unit_info WHERE ROWNUM<10

2.2.使用分析函數 

SELECT * FROM(SELECT unit_id,unit_name,row_number()over(ORDER BY unit_id asc) rn FROM v_sjjx_unit_info) WHERE rn BETWEEN 10 AND 20

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM