Sqlserver 数据库分页查询(三种方式)
--第一種分頁(yè):sqlserver 2000-sqlserver2005
--假設(shè):每頁(yè)顯示5條, 當(dāng)前頁(yè):1 ?則查詢1-5
--不等于前5條的前5條
select top 5 * from ?Student
where StuNo not in(select top 5 StuNo from ?Student)
--第二種分頁(yè)查詢: sqlserver 2008-sqlserver2012
select * from Student
-- row_number()over() ?組合函數(shù),給查詢結(jié)果創(chuàng)建行號(hào) (偽列)
declare?
@pageIndex int=1,@pageSize int =5,---用戶參數(shù),定義頁(yè)碼和每頁(yè)數(shù)量
@startIndex int,@endIndex int--查詢參數(shù)
set @startIndex=(@pageIndex-1)*@pageSize+1 --開(kāi)始位置
set @endIndex=@pageIndex*@pageSize --結(jié)束位置
select * from?
(
? select ROW_NUMBER()over(order by StuNo asc) id,* ?from ?Student
)Student
where id between @startIndex and @endIndex
--第三種分頁(yè)查詢: sqlserver 2012-sqlserver2021 (最新-推薦使用)
?select * from Student
---查詢篩選:offset 1 rows 從多少開(kāi)始
--- ? ? ? ? ?fetch next 5 ?選擇多少條數(shù)據(jù)
--- ? ? ? ? rows only
declare ---用戶參數(shù)
@pageIndex3 int=1,---定義頁(yè)碼
@pageSize3 int =5,---定義每頁(yè)數(shù)量
@startIndex3 int --查詢參數(shù)
set @startIndex3=(@pageIndex3 -1)*@pageSize3 --計(jì)算開(kāi)始位置
select * from Student
order by StuNo asc
offset @startIndex3 rows
fetch next @pageSize3
row only
?
總結(jié)
以上是生活随笔為你收集整理的Sqlserver 数据库分页查询(三种方式)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 高精度DAC功能板
- 下一篇: mysql 查看 脏页_MySQL:刷脏