ASP資料分頁方法
我觀前輩的帖子,皆由於資料庫的SQL大不一致,且SQL SERVER,ACCESS等菜鳥級資料庫沒有如rowid,_n_,obs等之類的輔助列,空有BETWEEN運算子而無用武之地,
又無如except之類的資料集運算子,真是令無數英雄盡折腰
偶詳觀各資料庫SQL,得出是資料庫就有取前面N條記錄的SQL語法,如什麼select top n*****之類的語法,而資料分頁的關鍵問題是取後N條記錄的語法偶深思良久,最後小悟,故出此言,還忘前輩們多多指點[@more@] 取記錄集後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關鍵字應該就可以就地執行了
又無如except之類的資料集運算子,真是令無數英雄盡折腰
偶詳觀各資料庫SQL,得出是資料庫就有取前面N條記錄的SQL語法,如什麼select top n*****之類的語法,而資料分頁的關鍵問題是取後N條記錄的語法偶深思良久,最後小悟,故出此言,還忘前輩們多多指點[@more@] 取記錄集後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/66009/viewspace-800721/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Asp.Net分頁生成頁碼超連結方法ASP.NET
- 19 ##### 屬性方法案例-資料分頁
- asp.net core mvc 分頁ASP.NETMVC
- 資料分頁說明
- python 自定義資料分頁Python
- mysql資料庫查詢時用到的分頁方法有哪些MySql資料庫
- MySQL 海量資料的 5 種分頁方法和優化技巧MySql優化
- WebMagic抓取 table分頁資料, table分頁時,URL不變Web
- 重寫 API 資源分頁資料API
- 使用陣列建立分頁資料陣列
- layui 資料表格重新載入資料分頁器回到第一頁UI
- thinkPHP 分頁後如何處理資料PHP
- 海量資料的分頁怎麼破?
- PHP 原生操作 Mysql 分頁資料案例PHPMySql
- asp.net使用母版頁中使用ajax指令碼取資料ASP.NET指令碼
- 百億級資料 分庫分表 後怎麼分頁查詢?
- 百億級資料分表後怎麼分頁查詢?
- 資料庫系列:巨量資料表的分頁效能問題資料庫
- Oracle資料庫中的分頁查詢Oracle資料庫
- 大量資料如何做分頁處理
- python實現資料分頁小練習Python
- 在分頁物件資料上追加屬性物件
- Lavarel Ajax 分頁時 獲取分頁資訊
- 利用ASP傳送和接收XML資料的處理方法XML
- elasticsearch查詢之大資料集分頁查詢Elasticsearch大資料
- elasticsearch查詢之大資料集分頁效能分析Elasticsearch大資料
- .net中使用oracle資料庫分頁小技巧Oracle資料庫
- thinkphp5 分頁資料物件的處理PHP物件
- MySQL order by limit 分頁資料重複問題MySqlMIT
- 在大資料情況下MySQL的一種簡單分頁最佳化方法大資料MySql
- Android Paging分頁庫的學習(一)—— 結合本地資料進行分頁載入Android
- SAP UI5 列表控制元件分頁顯示資料時,如何自定義分頁大小UI控制元件
- Android Paging分頁庫的學習(二)—— 結合Room資料庫進行分頁載入AndroidOOM資料庫
- MySQL 百萬級資料量分頁查詢方法及其最佳化MySql
- asp.net mvc檢視傳遞資料至另一頁的檢視ASP.NETMVC
- 如何分頁顯示資料庫查詢結果?資料庫
- [Django高階之批量插入資料、分頁器元件]Django元件
- vue+vuex+json-seiver實現資料展示+分頁VueJSON
- 資料庫的集合,分頁及約束條件資料庫