簡單的sql 分頁儲存過程

2021-08-24 19:07:37 字數 1497 閱讀 6091

--

建立表開始

ifobject_id('

[test]',

'u')

isnot

null

drop

table

[test

]create

table

[dbo].

[test](

[id][

int]

identity(1

, 1) not

null,[

title][

varchar](

50)

null)--

建立表結束

--分頁儲存過程開始

create

procedure

dbo.sp_pagingtest

(@pagesize

int,

@pageindex

int--

該過程接收兩個引數,乙個是當前頁面乙個是每頁顯示多少數量)as

begin

declare

@count

int--

宣告總數

select

@count

=count

(id)

from

test

select

@count

'count

'declare

@strsql

varchar

(2000

)declare

@rfrom

int--

宣告從第幾頁開始

set@rfrom=(

@pageindex-1

) *@pagesize

if@pageindex

>1--

如果是從第二頁或者大於以上開始,那麼執行下面

begin

set@strsql='

select top '+

str(

@pagesize) +

'* from test where [id] > (select max(id) from (select top '+

str(

@rfrom) +

'[id] from test order by [id] ) tempidb)'--

上面sql得到的是當前頁面所有記錄

endelse

--如果是從第一條記錄 也就是第一頁開始

begin

set@strsql='

select top '+

str(

@pagesize) +

'* from test order by [id]'--

獲取top n條記錄填充到當前頁面 ,n=pagesize

endexec

(@strsql)--

執行語句

end--

過程完畢

go

SQL分頁語句及簡單的SQL分頁儲存過程

假分頁 從資料庫中選擇所有的記錄後再進行分頁 真分頁 只從資料庫中選擇當前頁的記錄 sql select top每頁顯示的記錄數 fromtopicwhereid not in select top 當前的頁數 1 每頁顯示的記錄數 idfromtopicorder byiddesc order b...

SQL中簡單的分頁儲存過程

實現思路 運用子查詢來排除你所查詢資料中所不需要的。先查到開始到你所需要查詢內容的所有資料,然後再利用子查詢排除掉前面你所不需要的資料,最後就只剩下你所需要的內容了。可以自己自由新增和更改的地方 如果還需要返回總資料的話,可以自行新增乙個output的引數用於輸出你所查詢到的所有資料總和。或者你需要...

sql 儲存過程分頁

create proc myx prpagerecordset querystr nvarchar 1000 keyfield nvarchar 200 pagesize int,pagenumber int as begin declare sqltext as nvarchar 4000 dec...