1. 程式人生 > >Sqlserver使用ROW_NUMBER()函數進行數據分頁

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

數據庫 原創 操作 數據分頁 格式 怎麽辦 ref 怎麽 一起

在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技術小趣屋,轉載請標明出處。

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