SQL Server 乙個比較通用的分頁儲存過程

2021-07-03 19:59:28 字數 1486 閱讀 4154

包括了: 分頁 和 排序

use [databasename]

goset ansi_nulls on

goset quoted_identifier on

gocreate procedure [dbo].[procedurename]

@srctablename nvarchar(50), --檢視或表名

@condition varchar(1000), --查詢條件

@pagesize int = 10, --每頁長度(1~n)

@pageindex int = 1, --頁碼(1~n)

@orderby nvarchar(50), --排序方式,必須為查詢結果中的欄位名

@isdesc nvarchar(50) , --倒序還是正序

@hascount int = 0 --查詢結果是否帶總行數(0:不帶;1:帶)

asbegin

-- 引數容錯

if (@pageindex <= 0)

begin

set @pageindex = 1

enddeclare @select varchar(200)

if (@hascount = 0)

begin

set @select = ' select * ' ;

endelse if ( @hascount = 1 )

begin

set @select = ' select *,(select count(row_number) from searchresult as count) ';

enddeclare @sql varchar(6000)

set @sql=

' with searchresult as

(

select row_number() over (order by ' + @orderby + ' ' + @isdesc + ') as row_number , 其它所需欄位

from ' + @srctablename + ' ' + @condition +

' ) '

+ @select + ' from searchresult where row_number > ' + cast (@pagesize*(@pageindex-1) as varchar(50)) +

' and row_number <= ' + cast (@pagesize*(@pageindex) as varchar(50)) +

' order by ' + @orderby + ' ' + @isdesc

print @sql

exec(@sql)

endgo

乙個通用分頁類

1 功能 這個通用分頁類實現的功能是輸入頁數 第幾頁 和每頁的數目,就能獲得相應的資料。2 實現原理 分頁的實現通常分為兩種,一種是先把資料全查詢出來再分頁,一種是需要多少查詢多少,這裡使用第二種,所以就需要先實現在dao層能夠查詢一定範圍內的資料,這裡就實現通過id作為鍵值,查詢一定範圍內的資料的...

乙個通用的makefile(一)

最近在編寫android編譯系統時,需要遍歷每乙個目錄下每乙個資料夾下的makefile,網上的方法有些繁瑣 就直接貼上自己遍歷子目錄深度為1 for temporary 之後會繼續更新 下面是我的乙個簡單例項工程 資料夾目錄層次 獲取當前目錄下的子目錄名字 2 subdir shell ls l ...

乙個通用WebPart查詢列表

public partial class commonlist system.web.ui.usercontrol set 列表型別 public enum selecttype private selecttype selecttype selecttype.list personalizable...