• sql 存储过程 分页


    sql存储过程 分页:

    ALTER PROCEDURE [dbo].[BrokerToLenderDataShow2]
    @Where VARCHAR(200), --查询条件 不含'where'字符,如id>10 and len(userid)>9
    --@Order VARCHAR(200), --排序 不含'order by'字符,如id asc,userid desc,必须指定asc或desc 
    --注意当@SortType=3时生效,记住一定要在最后加上主键,否则会让你比较郁闷
    --@SortType INT, --排序规则 1:正序asc 2:倒序desc 3:多列排序方法
    --@RecorderCount INT, --记录总数 0:会返回总记录
    @PageSize INT, --每页输出的记录数
    @PageIndex INT --当前页数,从1开始
    --@TotalCount INT OUTPUT, --记返回总记录
    --@TotalPageCount INT OUTPUT --返回总页数
    
    AS
    BEGIN
    DECLARE @Sql VARCHAR(2000), @Sql2 NVARCHAR(2000),@sql3 nvarchar(2000),@BetweenStart int ,@BetweenEnd int
    
    
    set @BetweenStart= convert(int,@PageSize*@PageIndex)-@PageSize+1
    set @BetweenEnd=convert(int,@PageSize*@PageIndex)
    
    set @Sql3= ' select * from ( SELECT ROW_NUMBER() over (ORDER BY b.ID ) RowNumber,
    * from loanee b where 1=1 '+@Where+'
    ) t
    where t.RowNumber BETWEEN ' + ltrim(str(@BetweenStart)) + ' and ' + ltrim(str(@BetweenEnd));
    print @sql3
    
    exec(@sql3)
    
    END
    
     
    
    -----------------------------------------------------------------------------------
    
    -- 没有条件 的 调用
    exec [BrokerToLenderDataShow2] ' ',10,1
    
    --有条 的调用
    exec [BrokerToLenderDataShow2] ' and id>10',10,1

    下面一个小知识点ROW_NUMBER() 不排序的写法:

    select ROW_NUMBER() over(order by (select 0)) AS ROWNUM,* FROM Product 
  • 相关阅读:
    Clipper库中文文档详解
    uboot makefile构建分析
    nvidia tk1使用记录--基本环境搭建
    学习
    es6 es7新语法
    react dva发送请求详解(转)
    antDesign表单getFieldDecorator
    react dav
    js实现截取a标签的href属性和内容
    react学习
  • 原文地址:https://www.cnblogs.com/yangjinwang/p/5030667.html
Copyright © 2020-2023  润新知