SQL語句的分頁儲存過程

2021-04-21 23:03:07 字數 1922 閱讀 4936

create procedure [dbo].[getrecordfrompage]

@tblname      varchar(255),       -- 表名

@fldname      varchar(255),       -- 欄位名

@pagesize     int = 10,           -- 頁尺寸

@pageindex    int = 1,            -- 頁碼

@ordertype    bit = 0,            -- 設定排序型別, 非0 值則降序

@iscount bit = 0, -- 返回記錄總數, 非0 值則返回

@strwhere     varchar(2000) = ''  -- 查詢條件(注意: 不要加where)

asdeclare @strsql   varchar(6000)       -- 主語句

declare @strtmp   varchar(1000)       -- 臨時變數

declare @strorder varchar(500)        -- 排序型別

if @ordertype != 0

begin

set @strtmp = '<(select min'

set @strorder = ' order by [' + @fldname + '] desc'

endelse

begin

set @strtmp = '>(select max'

set @strorder = ' order by [' + @fldname +'] asc'

endset @strsql = 'select top ' + str(@pagesize) + ' * from ['

+ @tblname + '] where [' + @fldname + ']' + @strtmp + '(['

+ @fldname + ']) from (select top ' + str((@pageindex-1)*@pagesize) + ' ['

+ @fldname + '] from [' + @tblname + ']' + @strorder + ') as tbltmp)'

+ @strorder

if @strwhere != ''

set @strsql = 'select top ' + str(@pagesize) + ' * from ['

+ @tblname + '] where [' + @fldname + ']' + @strtmp + '(['

+ @fldname + ']) from (select top ' + str((@pageindex-1)*@pagesize) + ' ['

+ @fldname + '] from [' + @tblname + '] where ' + @strwhere + ' '

+ @strorder + ') as tbltmp) and ' + @strwhere + ' ' + @strorder

if @pageindex = 1

begin

set @strtmp = ''

if @strwhere != ''

set @strtmp = ' where (' + @strwhere + ')'

set @strsql = 'select top ' + str(@pagesize) + ' * from ['

+ @tblname + ']' + @strtmp + ' ' + @strorder

endif @iscount != 0

set @strsql = 'select count(' + @fldname + ') as total from [' + @tblname + ']'

exec (@strsql)

go

分頁SQL語句 儲存過程

分頁儲存過程一 alter procedure dbo fy startrowindex int,maximumrows int asbegin select from select ugid,uname,row number over order by ugid desc rownum from ...

儲存過程分頁Sql語句

create proc proc page pageindex int,當前頁碼 pagesize int,每頁多少條 tablename nvarchar 50 所要查詢的表名稱 pagecount int output,計算 總共多少頁 recordcount int output 記錄的總數量...

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

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