Terry.Li-彬

          虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks

          Oracle、DB2、SQLSERVER、Mysql、Access分頁SQL語句梳理
          最近把平時在項目中常用到的數據庫分頁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 )
          posted on 2010-09-18 17:11 禮物 閱讀(392) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。

          網站導航:
           
          主站蜘蛛池模板: 会东县| 华池县| 普陀区| 民丰县| 旌德县| 淳化县| 徐闻县| 综艺| 曲沃县| 武夷山市| 台东县| 河东区| 汾阳市| 舒兰市| 分宜县| 马鞍山市| 项城市| 永泰县| 宜丰县| 靖安县| 建德市| 龙海市| 清水河县| 兴隆县| 华宁县| 扶绥县| 兰西县| 沙田区| 古蔺县| 白山市| 独山县| 集安市| 拉萨市| 平和县| 弥勒县| 彩票| 潍坊市| 江北区| 马关县| 佛坪县| 绥中县|