• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    SQL分页查询存储过程代码分享

    话不多说,请看代码

    -------------------------------------
    -----作者:张欣宇
    -----时间:2013-06-28
    -----简介:根据参数和条件分页查询
    -------------------------------------
    Create proc [dbo].[Up_PagingQueryByParameter]
    (
     ----- 表名或能查询到结果的SQL语句{SQL语句左右必须有括号例:(select * from tbl1)}
     @TableName varchar(max),
     ----- 要查询的列名语句; 可空默认*
     @ColumnName varchar(5000),
     ----- 用来排序的列; 不可为空
     @OrderByColumnName varchar(50),
     ----- 排序desc(倒序5.4.3.2.1)或asc(正序1.2.3.4.5); 可空默认asc
     @ShrtBy varchar(4),
     ----- Where条件; 可空默认1=1
     @Where varchar(5000),
     ----- 每页显示数; 可空默认20
     @PageShows int,
     ----- 当前页数; 可空默认1
     @CurrentPage int,
     ----- 0为分页查询;其他为查询全部; 可空默认0
     @IsPaging int
    )
    as
    begin
     ----- 参数检查及规范
     if isnull(@Where,N'')=N'' set @Where = N'1=1';
     if isnull(@ColumnName,N'')=N'' set @ColumnName = N'*';
     if isnull(@PageShows,0)1 set @PageShows = 20;
     if isnull(@CurrentPage,0)1 set @CurrentPage = 1;
     if isnull(@ShrtBy,N'')=N'' set @ShrtBy = 'asc';
     if isnull(@IsPaging,0)>1 set @IsPaging = 0;
     ----- 定义
     -- 拼接的SQL语句
     declare @SqlStr nvarchar(max);
     declare @SqlWithStr nvarchar(max);
     -- 开始条数
     declare @StartIndex int;
     -- 结束条数
     declare @EndIndex int;
     ----- 赋值
     set @StartIndex = (@CurrentPage-1)*@PageShows+1;
     print(@CurrentPage);
     print(@PageShows);
     print(@StartIndex);
     set @EndIndex = @CurrentPage*@PageShows;
     print(@EndIndex);
     set @OrderByColumnName=@OrderByColumnName+' '+@ShrtBy;
     ----- 分页查询
     set @SqlWithStr = N'with temp as(select ROW_NUMBER() over(order by '+@OrderByColumnName+N') as RowNumber,'+@ColumnName+N' from '+@TableName+N' as tableName where '+@Where+N')';
     if(@IsPaging = 0)
     begin
     set @SqlStr = @SqlWithStr + N' select '+@ColumnName+N' from temp where temp.RowNumber between '+convert(nvarchar(20),@StartIndex)+N' and '+convert(nvarchar(20),@EndIndex)+N'';
     ---- print(@SqlStr);
     exec(@SqlStr);
     ----- 总数查询
     set @SqlStr = @SqlWithStr + N' select count(*) as TotalNumber from temp';
     ---- print(@SqlStr);
     exec(@SqlStr);
     end
     else
     begin
     set @SqlStr = @SqlWithStr + N' select '+@ColumnName+N' from temp';
     ---- print(@SqlStr);
     exec(@SqlStr);
     end
    end
    

    以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

    您可能感兴趣的文章:
    • 五种SQL Server分页存储过程的方法及性能比较
    • SQL Server 分页查询通用存储过程(只做分页查询用)
    • sqlserver2005利用临时表和@@RowCount提高分页查询存储过程性能示例分享
    • 深入sql server 2005 万能分页存储过程的详解
    • 基于Sql Server通用分页存储过程的解决方法
    • mssql 高效的分页存储过程分享
    • SQL Server 2005通用分页存储过程及多表联接应用
    • MSSQL MySQL 数据库分页(存储过程)
    • 三种SQL分页查询的存储过程代码
    • SQL通用存储过程分页,支持多表联合
    上一篇:CentOs7.x安装Mysql的详细教程
    下一篇:MySQL5.7 group by新特性报错1055的解决办法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    SQL分页查询存储过程代码分享 SQL,分页,查询,存储,过程,