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
- ASP.NET 頁面間資料傳遞方法ASP.NET
- ASP.net中的幾種分頁方法ASP.NET
- 史上最強的資料分頁方法 (轉)
- 19 ##### 屬性方法案例-資料分頁
- 淺述asp.net海量分頁資料儲存過程ASP.NET儲存過程
- 利用ASP實現Oracle資料記錄的分頁顯示Oracle
- SQL資料分頁SQL
- asp.net mvc 中利用jquery datatables 實現資料分頁顯示ASP.NETMVCjQuery
- asp.net core mvc 分頁ASP.NETMVC
- 資料分頁說明
- asp.net Oracle資料庫左側目錄樹及右側資料繫結及分頁ASP.NETOracle資料庫
- asp.net 簡單分頁列印ASP.NET
- 掌握ASP分頁技術詳解
- ASP分頁技術原始碼 (轉)原始碼
- SQL - 常用資料庫分頁SQL資料庫
- 分頁按頁碼讀取redis資料Redis
- MySQL 海量資料的 5 種分頁方法和優化技巧MySql優化
- mysql資料庫查詢時用到的分頁方法有哪些MySql資料庫
- ASP資料庫網頁設計基礎資料庫網頁
- 分頁總頁數計算方法 所有分頁通用
- WebMagic抓取 table分頁資料, table分頁時,URL不變Web
- 重寫 API 資源分頁資料API
- asp.net自制分頁頁碼條控制元件ASP.NET控制元件
- asp.net mvc easyui datagrid分頁ASP.NETMVCUI
- 使用陣列建立分頁資料陣列
- easy ui datagrid 資料分頁UI
- Oracle 分頁方法研究Oracle
- layui 資料表格重新載入資料分頁器回到第一頁UI
- asp.net 頁面傳值方法ASP.NET
- asp.net分頁控制元件AspNetPager的使用,使用傳統分頁和儲存過程分頁ASP.NET控制元件儲存過程
- 海量資料的分頁怎麼破?
- PHP 原生操作 Mysql 分頁資料案例PHPMySql
- thinkPHP 分頁後如何處理資料PHP
- 基於MSSQLSQL資料庫大批次資料的分塊分頁查詢SQL資料庫
- ASP連線MySQL資料庫的方法(轉)MySql資料庫
- ASP.NET 2.0 網頁採集方法ASP.NET網頁
- Asp.Net頁面傳值的方法ASP.NET