MSSQL分页

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go




ALTER PROCEDURE [dbo].[wkj_getattentiontopics] 


@fid varchar(255)='',
@tpp int,
@pageid int,
@condition nvarchar(255)=''
AS


DECLARE @pagetop int,@strSQL varchar(5000)


SET @pagetop = (@pageid-1)*@tpp
IF @pageid = 1
BEGIN
SET @strSQL = 'SELECT TOP  ' +STR( @tpp) + '  * FROM [wkj_topics] WHERE [displayorder]>=0  AND [attention]=1'
                     
IF @fid<>'0'
                            SELECT  @strSQL=@strSQL+'  AND [fid] IN ('+@fid+')'




                            IF @condition<>''
                            SELECT  @strSQL=@strSQL+@condition


                           SELECT @strSQL=@strSQL+'  ORDER BY [lastpost] DESC'
                            


      
END
ELSE
BEGIN
SET @strSQL = 'SELECT TOP  ' +STR( @tpp) + '  * FROM [wkj_topics]  WHERE [tid] < (SELECT MIN([tid])  FROM (SELECT TOP '+STR(@pagetop)+' [tid] FROM [wkj_topics]   WHERE [displayorder]>=0  AND [attention]=1'

-- www.52mvc.com

IF @fid<>'0'
 
                            SELECT  @strSQL=@strSQL+'  AND [fid] IN ('+@fid+')'
                          




                            IF @condition<>''
                            SELECT  @strSQL=@strSQL+@condition
                     


                          SELECT @strSQL=@strSQL+'   ORDER BY [tid] DESC'




                          SELECT @strSQL=@strSQL+'  )  AS T) '


IF @fid<>'0'
 
                           SELECT  @strSQL=@strSQL+'  AND [fid] IN ('+@fid+')'


   IF @condition<>''
                            SELECT  @strSQL=@strSQL+@condition




                           SELECT @strSQL=@strSQL+'  AND [displayorder]>=0  AND [attention]=1 ORDER BY [tid] DESC'


                                 
END
EXEC(@strSQL)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值