Sqlserver使用ROW_NUMBER()函數進行數據分頁

在Sqlserver數據庫中,如果查詢表中含有自增長Id列,一般會採用select Top的方式來數據的分頁操作。而實際上很多數據表設計的時候,不一定含有自增長Id列,那麼數據庫沒有Id自增列的時候要對數據分頁怎麼辦呢,此時則需要使用ROW_NUMBER()函數來對數據分頁,ROW_NUMBER()一般與OVER(order by)一起連用。
使用Row_Number來數據分頁的格式如下:
With tempTb AS
(
Select ROW_NUMBER() OVER(order by 排序的列 ASC) AS RowNumber, FROM 數據表_Table
)
Select
FROM tempTb Where RowNumber>開始行號 AND RowNumber<結束行號;

舉個例子,我們要查詢Student表中的學生數據,按學生出生日期從前到後排序,取出出生日期排在第31位到第60位的數據,語句如下:
With tempTb AS
(
Select ROW_NUMBER() OVER(order by BirthDay ASC) AS RowNumber, FROM Student
)
Select
FROM tempTb Where RowNumber>30 AND RowNumber<=60

備註:此原創文章最早發表於博主個人站點IT技術小趣屋,原文鏈接Sqlserver使用ROW_NUMBER()函數進行數據分頁_IT技術小趣屋,轉載請標明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章