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

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

    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,''
    您可能感兴趣的文章:
    • 高效的SQLSERVER分页查询(推荐)
    • sqlserver2005使用row_number() over分页的实现方法
    • SQL SERVER 2008 中三种分页方法与比较
    • oracle,mysql,SqlServer三种数据库的分页查询的实例
    • 真正高效的SQLSERVER分页查询(多种方案)
    • Sql Server 2012 分页方法分析(offset and fetch)
    • 五种SQL Server分页存储过程的方法及性能比较
    • sqlserver分页的两种写法分别介绍
    • sqlserver 通用分页存储过程
    • sqlserver 存储过程分页(按多条件排序)
    • sql server中千万数量级分页存储过程代码
    • sqlserver 高性能分页实现分析
    • SQL Server 分页查询通用存储过程(只做分页查询用)
    • sql server实现分页的方法实例分析
    上一篇:SQL 重复记录问题的处理方法小结
    下一篇:sqlserver 支持定位当前页,自定义排序的分页SQL(拒绝动态SQL)
  • 相关文章
  • 

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

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

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