sqlserver三種分頁查詢方法

2021-07-10 12:32:41 字數 1055 閱讀 5925

假設有表student,每頁顯示10條記錄,查詢第5頁的內容。

from student

where

idnotin(

--40是這麼計算出來的:10*(5-1)

select top 40

idfrom student order byid)

order by

id原理:需要拿出資料庫的第5頁,就是40-50條記錄。首先拿出資料庫中的前40條記錄的id值,然後再拿出剩餘部分的前10條元素

select top 10 *

from student

where id >

( select isnull(max(id),0)

from

( select top 40 id from student order

by id

) a)order

by id

原理:先查詢前40條記錄,然後獲得其最id值,如果id值為null的,那麼就返回0

然後查詢id值大於前40條記錄的最大id值的記錄。

這個查詢有乙個條件,就是id必須是int型別的。

只支援sqlserver2005版本以上。

select top 10 *

from

( select row_number() over(order

by id) as rownumber,* from student

) awhere rownumber > 40

原理:先把表中的所有資料都按照乙個rownumber進行排序,然後查詢rownuber大於40的前十條記錄。最後會多出rownumber 一列。

其中row_number()函式的使用語法如下:

row_number ( ) 

over ( [ partition by value_expression , ... [ n ] ] order_by_clause )

SqlServer 三種分頁查詢語句

先說好吧,查詢的資料排序,有兩個地方 1 分頁前的排序。2 查詢到當前頁資料後的排序 1 先查詢當前頁碼之前的所有資料id select top 當前頁數 1 每頁資料條數 id from 表名 2 再查詢所有資料的前幾條,但是id不在之前查出來的資料中 select top 每頁資料條數 from...

SQL Server的三種分頁方式

目前常見的三種sql分頁方式 top not in方式 select top 條數 from tablename where id not in select top 條數 頁數 id from tablename row number over 方式 select from select row ...

SQL server分頁的三種方法

var datacount test.orderby t t.testid skip pagesize pageindex 1 take pagesize tolist select top 需要顯示的條目數 from dbtest where testid notin select top 需要剔...