史上最強的資料分頁方法 (轉)
看到前輩們無數的分頁方法,其中奇淫技巧不盡有之,其中之最當屬這篇帖子
/develop/Read_Article.?Id=18627">http://www.csdn.net/develop/Read_Article.asp?Id=18627分頁方法為之最,令我等菜鳥不盡畏然
我觀前輩的帖子,皆由於的大不一致,且,ACCESS等菜鳥級資料庫沒有如rowid,_n_,obs等之類的輔助列,空有BETWEEN運算子而無用武之地,
又無如except之類的資料集運算子,真是令無數英雄盡折腰
偶詳觀各資料庫SQL,得出是資料庫就有取前面N條記錄的SQL語法,如什麼 top n*****之類的語法,而資料分頁的關鍵問題是取後N條記錄的語法
偶深思良久,最後小悟,故出此言,還忘前輩們多多指點
取記錄集後N條記錄的大法:
假設
1.有一sql語句將產生1000條記錄 (select 唯一ID,其他欄位 from 表集 where 條件 order by 排序)
2.每頁顯示20條記錄
3.當前顯示第5頁
實現如下:
select * from
(
select * from (select top 20*4 唯一ID,其他欄位 from 表集 where 條件 order by 排序) as a
union all
select * from (select top 20*5 唯一ID,其他欄位 from 表集 where 條件 order by 排序) as b
)
a
group by 唯一ID,其他欄位 having count(唯一ID)=1 order by 排序
執行此SQL,至此取記錄集後N條記錄大法就些完畢
詳細說明:
此SQL語句的關鍵應用技巧在於union all和分組上的條件過濾語句
大家可以根據此技巧完全可以做出一個通用的分頁方法,如直接由傳入sqlstr(sql語句),NumPerPage(每頁顯示數),currpage(當前頁),自己在再內組織成通成的SQL分頁語句
備註:
當前頁為1的話就不需要執行該SQL了,直接TOP一下就OK了
由於沒有環境,該SQL無法測試,但相信不會低效
執行平臺在access,sqlserver上都可執行,其它資料庫平臺只需改top關鍵字應該就可以就地執行了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-985665/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASP資料分頁方法
- 史上最強程式碼自測方法,沒有之一!
- 史上最強Tableau Server 安裝教程Server
- 史上最強攻略!手把手教你建「資料中臺」!
- 史上最全、最詳細的Docker學習資料Docker
- XML建立可排序、分頁的資料顯示頁面(轉)XML排序
- Delphi中根據分類資料生成樹形結構的最優方法 (轉)
- 史上最強GAN被谷歌超越!標註資料少用90%,造假效果卻更逼真谷歌
- HTTP最強資料大全HTTP
- 19 ##### 屬性方法案例-資料分頁
- 史上最強程式碼註釋(不看後悔)
- oracle 資料分頁查詢 (轉貼收集)Oracle
- 最簡便的備份MySql資料庫方法(轉)MySql資料庫
- SQL資料分頁SQL
- 歷史上最強的sql FAQ for Oracle--第三部分、備份與恢復SQLOracle
- MySQL 海量資料的 5 種分頁方法和優化技巧MySql優化
- mysql資料庫查詢時用到的分頁方法有哪些MySql資料庫
- GitChat·大資料 | 史上最詳細的Hadoop環境搭建Git大資料Hadoop
- 史上最強大的40多個純CSS繪製的圖形CSS
- UC:史上轉型最徹底的瀏覽器瀏覽器
- 史上最強 iPhone 越獄工具開源:功能永久有效!iPhone
- Android除錯工具-ADB史上最強介紹Android除錯
- 史上最全最強SpringMVC詳細示例實戰教程SpringMVC
- 資料分頁說明
- 資料探索很麻煩?推薦一款史上最強大的特徵分析視覺化工具:yellowbrick特徵視覺化
- 15億引數!史上最強通用NLP模型誕生:狂攬7大資料集最佳紀錄模型大資料
- 全球最強大的護照(附原資料表)
- 如何打造最強的資料驅動組織
- 史上最快、最強大的 Gradle 5.0 釋出,新特性全解!Gradle
- 版本12.5.2,分頁取資料的sql怎麼寫?(轉載)SQL
- 13代iPhone同框:誰是史上最強蘋果揭曉iPhone蘋果
- 自動駕駛最強學習資料自動駕駛
- 海量資料的分頁怎麼破?
- IGN評分8.8!它是史上最長壽的RPG遊戲!遊戲
- SQL - 常用資料庫分頁SQL資料庫
- 分頁按頁碼讀取redis資料Redis
- 基於MSSQLSQL資料庫大批次資料的分塊分頁查詢SQL資料庫
- 分頁總頁數計算方法 所有分頁通用