Oracle-限制查詢返回條數,MYSQL LIMIT 的實現


    Oracle沒有MYSQL LIMIT子句,但是從12c版本開,我們可以使用FETCH子句限制返回行數。

SELECT * FROM DUAL OFFSET ROW | ROWS  FETCH FIRST | NEXT rowcount | percent PERCENT ROW | ROWS ONLY | WITH TIES ;

    關鍵字說明:

  • OFFSET ROW | ROWS 查詢時限定要跳過的行數
  • FETCH 關鍵字記住就行
  • FIRST | NEXT rowcount | percent PERCENT ROW | ROWS  限定行數或者百分比
  • ONLY | WITH TIES 完全按照行數限制還是返回最后一行相同的值,使用WITH TIES必須有ORDER子句

    限制條件:

  • 不能使用FOR UPDATE
  • 不能使用序列
  • 查詢包含FRTCH則物化試圖刷新會失敗
  • ORA-00918錯誤時,需調整重復的字段名

     例子:

SELECT employee_id, last_name
  FROM employees
 ORDER BY employee_id 
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;

     12c之前怎么辦?

SELECT * FROM (SELECT * FROM DUAL ORDER BY COLUMN_NAME) WHERE ROWNUM>= ?  AND ROWNUM<= ?

 


免責聲明!

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



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