zoukankan      html  css  js  c++  java
  • 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 
  • 相关阅读:
    JAVA面向对象初步知识总结:封装、继承、多态
    最短路径算法
    Retrofit源码分析(一)
    属性动画总结(纯搬运郭霖先生的文章)
    多项式相关算法模板
    二分图匹配问题
    一般图匹配
    三种上下界网络流模板
    最大流模板
    2017-2018 Petrozavodsk Winter Training Camp, Saratov SU Contest
  • 原文地址:https://www.cnblogs.com/yangjinwang/p/5030667.html
Copyright © 2011-2022 走看看