T-SQL利用Row_Number函数实现分页
生活随笔
收集整理的這篇文章主要介紹了
T-SQL利用Row_Number函数实现分页
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
SQL:
CREATE PROCEDURE PagingViewTest (@currentPageIndex INT, --頁序號@pageSize INT, --頁大小@pageCount INT OUTPUT --返回值,總記錄數(shù) ) AS BEGIN--取總記錄數(shù) SELECT @pageCount=COUNT(OrderID) FROM dbo.sale_Order; --利用CTE以提高執(zhí)行效率 WITH Result AS (SELECT ROW_NUMBER() OVER(ORDER BY OrderID) AS rowNumber,* FROM sale_order s ) SELECT * FROM Result r WHERE ((@currentPageIndex-1)*@pageSize < rowNumber) AND (rowNumber <=@currentPageIndex*@pageSize) END
執(zhí)行結(jié)果:
一直想自己實現(xiàn)分頁的存儲過程,一直沒實現(xiàn),今天沒偷懶,言歸正傳,簡略講下分頁的原理:分頁有幾個參數(shù),當前頁序號(即第幾頁,必須),頁大小(每頁顯示數(shù)量,必須),總頁數(shù)(可選),總記錄數(shù)(可選),前臺查詢數(shù)據(jù)時需要向后臺至少發(fā)送兩個必選參數(shù)。參數(shù)有了,SQL Server也就不愁分頁啦!利用Row_Number的主要原因是要對表進行編號,以確定表中記錄是第X頁中第X條數(shù)據(jù),執(zhí)行完Row_Number函數(shù)的表如下:
?看到rowNumber列相信大家都有思路了,只要加上where條件 前一頁面*每頁大小< rowNumber and。rowNumber <= 當前頁面*每頁大小 即可,原理就是這些,可以基于這個思路繼續(xù)拓展,比如傳入表名實現(xiàn)通用表或者視圖的分頁等等。
今天關(guān)于SQL分頁就介紹到這里,歡迎大家批評指正。
轉(zhuǎn)載于:https://www.cnblogs.com/the-three/p/3726179.html
總結(jié)
以上是生活随笔為你收集整理的T-SQL利用Row_Number函数实现分页的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS工程中的info.plist文件的
- 下一篇: mysql数据库的备份和二进制日志恢复