Oracle、DB2、SQLSERVER、Mysql、Access分頁SQL語句

來源:互聯網
上載者:User

標籤:http   tar   rownumber   ota   合作   top   客戶   顯示   access   

最近把平時在項目中常用到的資料庫分頁sql總結了下。大家可以貼出分頁更高效的sql語句。
sqlserver分頁 
 第一種分頁方法
 需用到的參數: 
 pageSize 每頁顯示多少條資料 
 pageNumber 頁數 從用戶端傳來 
 totalRecouds 表中的總記錄數 select count (*) from 表名 
 totalPages 總頁數 
 totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1 
 pages 計算前pages 條資料 
 pages= pageSize*(pageNumber-1) 
 SQL語句: 
 select top pageSize * from 表名 where id  not in (select top pages id from 表名 order by id) order by id 
 第二種分頁方法
 pageSize 每頁顯示多少條資料 
 pageNumber 頁數 從用戶端傳來
 pages=pageSize*(pageNumber-1)+1
 select top pageSize * from 表名 where id>=(select max(id) from (select top pages id from 表名 order by id asc ) t )

mysql分頁 
 需用到的參數: 
 pageSize 每頁顯示多少條資料 
 pageNumber 頁數 從用戶端傳來 
 totalRecouds 表中的總記錄數 select count (*) from 表名 
 totalPages 總頁數 
 totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1 
 pages 起始位置 
 pages= pageSize*(pageNumber-1) 
 SQL語句: 
 select * from 表名 limit pages, pageSize; 
 mysql 分頁依賴於關鍵字 limit 它需兩個參數:起始位置和pageSize 
 起始位置=頁大小*(頁數-1) 
 起始位置=pageSize*(pageNumber -1)

oracle分頁
 pageSize 每頁顯示多少條資料 
 pageNumber 頁數 從用戶端傳來 
 totalRecouds 表中的總記錄數 select count (*) from 表名 
 totalPages 總頁數 
 totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1 
 startPage 起始位置 
 startPage= pageSize*(pageNumber-1)+1
 endPage=startPage+pageSize
 SQL語句
 select a.* from 
 (
   select rownum num ,t.* from  表名 t where 某列=某值 order by id asc 
 )a
 where a.num>=startPage and a.num<endPage

db2分頁
 int startPage=1  //起始頁
 int endPage;     //終止頁
 int pageSize=5;  //頁大小
 int pageNumber=1 //請求頁

 startPage=(pageNumber-1)*pageSize+1 
 endPage=(startPage+pageSize);


 SQL語句
 select * from (select 欄位1,欄位2,欄位3,欄位4,欄位5,rownumber() over(order by 排序欄位 asc ) as rowid  from 表名 )as a where a.rowid >= startPage AND a.rowid <endPage

access分頁
 pageSize 每頁顯示多少條資料 
 pageNumber 頁數 從用戶端傳來
 pages=pageSize*(pageNumber-1)+1
 SQL語句
 select top pageSize * from 表名 where id>=(select max(id) from (select top pages id from 表名 order by id asc ) t )


 溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時註明出處http://www.blogjava.net/sxyx2008/謝謝合作!!!

Oracle、DB2、SQLSERVER、Mysql、Access分頁SQL語句

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.