CREATE PROCEDURE [dbo].[up_Pager]
  @table         varchar(2000), --表名
  @col        varchar(50), --按该列来进行分页
  @orderby    bit,         --排序,0-顺序,1-倒序
  @collist    varchar(800),--要查询出的字段列表,*表示全部字段
  @pagesize   int,         --每页记录数
  @page       int,         --指定页
  @condition  varchar(800) --查询条件
AS
DECLARE @sql nvarchar(4000),@where1 varchar(800),@where2 varchar(800),
 @total_Item  int,@total_Page int
IF @condition is null or rtrim(@condition)=''
BEGIN--没有查询条件
  SET @where1=' WHERE '
  SET @where2='  '
END
ELSE
BEGIN--有查询条件
  SET @where1=' WHERE ('+@condition+') AND '--本来有条件再加上此条件
  SET @where2=' WHERE ('+@condition+') '--原本没有条件而加上此条件
END

SET @sql='SELECT @total_Item=CEILING((COUNT(*)+0.0)'+') FROM '+@table+ @where2
EXEC sp_executesql @sql,N'@total_Item int OUTPUT',@total_Item OUTPUT --计算总条数
set @total_Page = Ceiling((@total_Item+0.0)/@pagesize)  --计算页总数

IF @orderby=0
  SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
     ' , '+ CAST(@total_Item AS varchar) + ' as total_Item' +
     ' , '+CAST(@total_Page AS varchar) + ' as total_Page' +
           ' FROM mailto:'+@table+@where1+@col+'%3E(SELECT MAX('+@col+') '+
           ' FROM (SELECT TOP '+CAST(@pagesize*(@page-1) AS varchar)+' '+
           @col+' FROM '+@table+@where2+'ORDER BY '+@col+') t) ORDER BY '+@col
ELSE
  SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
     ' , '+ CAST(@total_Item AS varchar) + ' as total_Item' +
     ' , '+CAST(@total_Page AS varchar) + ' as total_Page' +
           ' FROM mailto:'+@table+@where1+@col+'%3C(select MIN('+@col+') '+
           ' FROM (SELECT TOP '+CAST(@pagesize*(@page-1) AS varchar)+' '+
           @col+' FROM '+@table+@where2+'ORDER BY '+@col+' DESC) t) ORDER BY '+
           @col+' DESC'
IF @page=1--第一页
  SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
     ' , '+ CAST(@total_Item AS varchar) + ' as total_Item' +
     ' , '+CAST(@total_Page AS varchar) + ' as total_Page' +
     ' FROM '+@table+
    @where2+'ORDER BY '+@col+CASE @orderby WHEN 0 THEN '' ELSE ' DESC' END
--print @sql
EXEC(@sql)

在SQL中测试(教你如何使用)
EXEC up_Pager '(SELECT * FROM 表名)aa','要排序的列名',0-顺序或1-倒序,'显示列',每页记录数,指定页,'条件'
EXEC up_Pager '(SELECT * FROM T_Gather_Page)aa','SaveTime',1,'*',40,3,''

转载于:https://www.cnblogs.com/hendy/archive/2010/05/05/1727708.html

SQL Server分页查询存储过程相关推荐

  1. SQL Server分页查询方法整理

    SQL Server数据库分页查询一直是SQL Server的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页 ...

  2. SQL Server分页存储过程实践(图解)

    下面来对SQL Server分页存储过程进行一下实做.图解成功的各个步骤. 一 找到大数据量的示例表 分页都是针对大记录数的表:反之有大记录数的表,可能就需要分页.例如银行用户表,就会上千万.下面先做 ...

  3. SQL SERVER 查看所有存储过程或视图里包含某个关键字的查询语句

    SQL SERVER 查看所有存储过程或视图里包含某个关键字的查询语句 select [name],[xtype] from sysobjects o,syscomments s where o.id ...

  4. SQL Server基础之存储过程

    阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储过程   简单来说,存储过程就是一条或 ...

  5. sql server内置存储过程、查看系统信息

    1.检索关键字:sql server内置存储过程,sql server查看系统信息 2.查看磁盘空间:EXEC master.dbo.xp_fixeddrives , --查看各个数据库所在磁盘情况S ...

  6. SQL Server 初步学习存储过程总结

    一:存储过程概述  SQL Server中的存储过程是使用T_SQL编写的代码段.它的目的在于能够方便的从系统表中查询信息,或者完成与更新数据库表相关的管理任务和其他的系统管理任务.T_SQL语句是S ...

  7. SQL Server 2016 查询存储性能优化小结

    SQL Server 2016已经发布了有半年多,相信还有很多小伙伴还没有开始使用,今天我们来谈谈SQL Server 2016 查询存储性能优化,希望大家能够喜欢 作为一个DBA,排除SQL Ser ...

  8. Sql Server实用操作-存储过程精解

    CREATE PROCEDURE 创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合.可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过 ...

  9. 优化SQL Server数据库查询方法

    本文详细介绍了优化SQL Server数据库查询方法. SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) ...

最新文章

  1. R语言自定义变成进行决策曲线分析DCA曲线绘制(Decision Curve Analysis)
  2. Linux培训之系统升级
  3. [HTML5游戏开发]简单的《找没有同汉字版〗爆去考考您狄综力吧
  4. 使用WampServer搭建本地PHP环境,绑定域名,配置伪静态
  5. 如何使用Serilog.AspNetCore记录ASP.NET Core3.0的MVC属性
  6. 为什么每个理发店门口都有彩色的柱子?你不知道吧
  7. 流程制造项目中关于销售订单数量与实际产生数量不同时的解决方案
  8. i++ 和 ++i 效率的分析以及自定义类型的自增/自减运算符重载实例
  9. 5 重启应用_iphone8黑屏怎么办 iphone8黑屏重启方法【详细介绍】
  10. 乐视网:对FF与第九城市设立合资公司的计划不知情
  11. springboot controller访问不到_Spring Boot 开篇:快速入门
  12. 词性标注-隐马尔可夫模型
  13. 手动实现读写锁(线程级)
  14. 转科普CPU Cache line
  15. @autowired注解 抽象类_Spring容器注解注入
  16. ipad iphone开发_如何在iPhone或iPad上强制退出应用程序
  17. 达梦数据库远程网页访问
  18. 北京科技大学C语言锐格答案,北京科技大学软件课程设计作业.pdf
  19. 二元二次方程例题_二元二次方程组练习题及答案.doc
  20. Python批量剪切mp3音乐

热门文章

  1. 瓜分60万现金大奖,云原生编程挑战赛等你来挑战!
  2. 如何用钉钉宜搭制定企业疫情防控数字化管理方案?
  3. 深度前沿:对话管理模型研究最新进展
  4. 显示行数 设置ssh终端_linux限制用户登陆的一些方法
  5. Python打造一款多线程端口扫描器
  6. Machinations——可视化游戏设计
  7. Java的二十三种设计模式(单例模式、工厂方法模式、抽象工厂模式)
  8. 深入理解 python 中的赋值、引用、拷贝、作用域
  9. Geany编辑器配置Python路径(Windows10)
  10. opencv的基本数据结构(一)(转)