ç»ä½ 个å页åå¨è¿ç¨å§ æèªå·±åçãALTER procedure [dbo].[pro_lu_GolfJB_Sele]
@Ps int=10, --页大å°
@Pg int=1 --读åç页ç
ASDeclare @Rows int,@Pgs int,@P1 int,@P2 int //å®ä¹æ»è¡æ°ï¼æ»é¡µæ°ï¼è®¡ç®ç¨åé
Declare @t table(I int identity(1,1) not null,g_id int)//å®ä¹ä¸´æ¶è¡¨
Insert into @t(g_id) select g_id from lu_GolfJB order by g_id desc //å°ææ¥è¯¢è¡¨æ°æ®IDæå
¥ä¸´æ¶è¡¨SELECT @Rows=@@ROWCOUNT //è·åæ»è¡æ°
SELECT @Pgs=@Rows/@Ps //è·åæ»é¡µæ°
IF @Pgs*@Ps<@Rows SELECT @Pgs=@Pgs+1 //å¤ææ»è¡æ°æ¯å¦ç¬¦åå®é
è¡æ° ä¸ç¬¦åå说æ页æ°æç缺 ç»é¡µæ°+1
IF @Pg>@Pgs SELECT @Pg=@Pgs //å¤æä¼ å
¥é¡µç æ¯å¦è¶
åºæ»é¡µ
IF @Pg<0 select @Pg=1 //å¤æä¼ å
¥é¡µç æ¯å¦å°äº0
SELECT @P1=(@Pg-1)*@Ps+1,@P2=@Pg*@Ps //@p1æ¯å½å页å¨ä¸´æ¶è¡¨ä¸ç¬¬ä¸æ¡IDï¼@p2æ¯æåä¸æ¡IDselect Rows=@Rows,Pgs=@Pgs,Pg=@Pg //åå¾åå¨è¿ç¨è¿åå¾ç¬¬ä¸å¼ 表 æ°æ®ä¸ºå½åå页åºæ°
SELECT * FROM dbo.lu_GolfJB
WHERE g_id IN (SELECT g_id FROM @t WHERE I BETWEEN @P1 AND @P2)
order by g_id desc//åå¾è¿å第äºå¼ 表 æ°æ®ä¸ºå®é
表æ°æ®
温馨提示:答案为网友推荐,仅供参考