多条件分页存储过程

CREATE PROCEDURE    GetPageRecordsByMoreOrder
(
 @tblname   nVARCHAR(4000),    --表名
 @PageIndex int,              --页码
 @PageSize int,       --每页容纳的记录数
 @IsCount     bit,
 @ID      VARCHAR(255),       --需要排序的不重复的ID号
 @strWhere   VARCHAR(255),      --查询条件及规则
 @OrderType   VARCHAR(255)     --排序字段及规则
)
AS

DECLARE @Str nVARCHAR(4000)


if @IsCount !=1
begin
               if @strWhere =''
                     begin
                             SET @Str='SELECT   TOP  '+CAST(@PageSize AS VARCHAR(20))+'  *  FROM  '+@tblname+'   WHERE '+@ID+'   NOT IN
                   (SELECT   TOP '+CAST((@PageSize*(@PageIndex-1)) AS VARCHAR(20))+' '+@ID+' FROM '+@tblname+'  ORDER BY '+@OrderType+')  ORDER BY '+@OrderType
                     end
                else
                      begin
                             SET @Str='SELECT   TOP  '+CAST(@PageSize AS VARCHAR(20))+'  *  FROM   '+@tblname+'  WHERE '+@ID+'  NOT IN
                  (SELECT   TOP '+CAST((@PageSize*(@PageIndex-1)) AS VARCHAR(20))+' '+@ID+' FROM  '+@tblname+'  where  '+@strWhere+'    ORDER BY '+@OrderType+')  and   '+@strWhere+'   ORDER BY '+@OrderType
                      end          
end
else
begin
              if @strWhere =''
                     begin
                           SET @Str='select count(*) as Total from   ' + @tblname
                     end
                else
                      begin
                            SET @Str='select count(*) as Total from   ' + @tblname + ' where('+@strWhere+')'
                      end 
end
print @str
EXEC sp_ExecuteSql @Str
GO 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值