單錶分頁之儲存工程原始碼

2022-02-06 19:08:15 字數 2832 閱讀 2813

**/*

*/create

procedure

up_getrecordbypage  

@tblname

varchar

(255)=

'test

',  

--表名

@fldname

varchar

(255)=

'userid

',  

--主鍵名

@pagesize

int=

10,      

--頁面大小

@pageindex

int=

1,       

--頁面索引

@isrecount

bit=

1,       

--是否返回記錄數(1:返回,0:不返回)

@ordertype

bit=

0,       

--0:公升序,1:降序

@strwhere

varchar

(2000)=

'0=0 and 1=1'--

條件with

encryption  

asdeclare

@strsql

varchar

(6000

)      

declare

@strtmp

varchar

(2000

)       

declare

@strorder

varchar

(400

)       

--判斷是公升序還是降序

if@ordertype!=0

begin

set@strtmp='

'set

@strorder='

order by ['+

@fldname+'

] desc

'end

else

begin

set@strtmp='

>(select max

'set

@strorder='

order by ['+

@fldname+'

] asc

'end

--正常sql語句的構造 

set@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

--條件不為空的時,sql的構造 

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

--索引為一時,sql的構造

if@pageindex=1

begin

set@strtmp=''

if@strwhere

!=''

set@strtmp='

where '+

@strwhere

set@strsql='

select top '+

str(

@pagesize) +

'* from ['+

@tblname+'

]'+@strtmp+'

'+@strorder

end--

是否返回記錄數

if@isrecount!=0

begin

set@strsql

=@strsql+'

select count(*) as total from ['+

@tblname+'

]'if@strwhere

!=''

set@strsql

=@strsql+'

where '+

@strwhere

endexec

(@strsql

)  執行結果圖如下:

資料讀出來了,接下來說哈我在程式裡是這麼處理讀出來的資料的。

分頁儲存過程 單錶Sql2005

alter procedure dbo sp bj page currentpage int,pagesize int,field info varchar 500 table info varchar 1000 field id varchar 10 field order varchar 100...

redis原始碼學習之跳躍表

跳躍表對於我來說是乙個比較陌生的資料結構,因此花了一上午的時間先看了一蛤mit的公開課。網易雲課堂 mit跳躍表 什麼是跳躍表,有乙個很簡單的例子,有些地方的火車站跟高鐵站是同乙個站,有的地方只有火車站 假設現在的線路是a b c d e。其中a和c剛剛說的高鐵和火車站在一塊,其他的只有火車站,考慮...

redis原始碼之鍊錶list

未完待續 1.簡介 離散,無序的資料結構。鍊錶提供了高效的節點重排能力,以及順序性的節點訪問方式,並且可以通過增刪節點來靈活地調整鍊錶的長度。鍊錶被廣泛用於實現 redis 的各種功能,比如列表鍵,發布與訂閱,慢查詢,監視器,等等。2.定義 鍊錶節點 typedef struct listnode ...