-- 设置动态Where if(@ProAtt1>0) set @SqlWhere = @SqlWhere+' and ProAtt1='+@ProAtt1 if(@ProAtt2>0) set @SqlWhere = @SqlWhere+' and ProAtt2='+@ProAtt2 if(@ProAtt3>0) set @SqlWhere = @SqlWhere+' and ProAtt3='+@ProAtt3 if(@ProAtt4>0) set @SqlWhere = @SqlWhere+' and ProAtt4='+@ProAtt4 if(@ProPrice>0) set @SqlWhere = @SqlWhere+' and ProPrice='+@ProPrice
-- 首先得到纪录总数 Select @Count = count(ID) FROM NetDIY_Products_CN Where 1=1;
-- 定义游标需要开始的位置 Set @Cursor = @MaxPageSize*(@PageNum-1)+1 -- 如果游标大于纪录总数将游标放到最后一页开始的位置 IF @Cursor > @Count BEGIN -- 如果最后一页与最大每次纪录数相等,返回最后整页 IF @Count % @MaxPageSize = 0 Set @Cursor = @Count - @MaxPageSize + 1 -- 否则返回最后一页剩下的纪录 ELSE Set @Cursor = @Count - (@Count % @MaxPageSize) + 1 END -- 将指针指到该页开始
Set Rowcount @Cursor -- 得到纪录开始的位置 Select @Name = weighting FROM NetDIY_Products_CN Where 1=1 orDER BY weighting desc;
-- 设置开始位置 Set Rowcount @MaxPageSize -- 得到该页纪录 SELECT * FROM NetDIY_Products_CN Where weighting <= @Name order By weighting desc Set Rowcount 0 END