sql数据库中常用的分页 我做了一个万能的 用的上的小伙伴拿去耍吧

go  ----万能分页代码
create procedure [dbo].[sp_datapager]
@pagesize int,--每一页的大小
@pageindex int,--页码数
@tablename varchar(Max),--表的名称
@keycolumn varchar(20),---主键id
@columns varchar(200),--要查询出列的名称
@where varchar(200),---查询条件
@orderby varchar(100),---排序方式
@recordcount int out--输出参数,非0则返回要查询表的总记录数

as
declare @sql nvarchar(3000)
declare @rcsql nvarchar(1000)
set @rcsql='select @rc=count(*) from '+@tablename
set @sql='select top '+convert(varchar(3),@pagesize)+' '+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+')'
if (@where!='')
begin
set @rcsql='select @rc=count(*) from '+@tablename+' where '+@where
set @sql='select top '+convert(varchar(3),@pagesize)+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+' where '+@where+') and '+@where
end
if (@orderby!='')
begin
if (@where!='')
begin
set @sql='select top '+convert(varchar(3),@pagesize)+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+' where '+@where+' order by '+@orderby+') and '+
@where+' order by ' +@orderby
end
else
begin
set @sql='select top '+convert(varchar(3),@pagesize)+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+' order by '+@orderby+')'+' order by ' +@orderby
end

end
declare @param nvarchar(100)
set @param='@rc int output'
exec sp_executesql @sql
exec sp_executesql @rcsql,@param,@rc=@recordcount output

Sql万能分页代码的更多相关文章

  1. sql语句分页代码

    SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO alter proc sp_SelectInfomationByKeyWord--创建一个存储过程 - ...

  2. SQL 数据分页查询

    最近学习了一下SQL的分页查询,总结了以下几种方法. 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据.(数据太少,就每页5 ...

  3. Oracle中经典分页代码!

    在Oracle中因为没有top关键字,所以在sqlserver中的分页代码并不适用于Oracle,那么在Oracle中如何来实现分页呢? --查询所有数据 STUNO STUNAME STUAGE S ...

  4. SQL Server 分页方法汇总

    PageSize = 30 PageNumber = 201 方法一:(最常用的分页代码, top / not in) UserId UserId from UserInfo order by Use ...

  5. PHP分页初探 一个最简单的PHP分页代码实现

    PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ...

  6. 对sql进行分页处理(Oracle版)

    直接代码 /// <summary> /// 对sql进行分页处理 /// </summary> /// <param name="sql">& ...

  7. PHP分页初探 一个最简单的PHP分页代码的简单实现

    PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ...

  8. java常用公共代码二之分页代码的实现

    在项目中,我们经常会写到一些公共的代码,来让开发人员调用,减少代码重复,下面,我就将一些常用到的公共类贴出来和大家分享!! 二.分页代码实现:在项目中,分页是一个项目中必不可少的,它可以防止我们从数据 ...

  9. (3.15)常用知识-sql server分页

    推荐使用row_number over()方法,或2012以上使用offset PageSize = PageNumber = 方法一:(最常用的分页代码, top / not in) UserId ...

随机推荐

  1. RabbitMQ+Spring 结合使用

    1:创建一个Maven工程,pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi ...

  2. Docker 容器

    1.  容器 在过去,如果要开始编写Python应用程序,首先要做的就是在机器上安装Python运行时环境.但是,这就造成了这样一种情况:你的机器上的环境需要完美,以便你的应用程序能够按预期运行,而且 ...

  3. 开发教程(四) MIP组件平台使用说明

    组件审核平台用于上传 MIP 组件.经过自动校验之后,提交审核,通过审核的组件会定时推送到线上,供网站使用. 平台地址:https://www.mipengine.org/platform/ 1. 使 ...

  4. Django解决跨域问题

    原理:浏览器的同源策略,其实我们的请求发送过去了,服务器也进行响应了,就是浏览器把响应给阻止响应而已 第一种方法jsonp 因为浏览器不对 <script> 标签里面的src属性进行阻止, ...

  5. html5中的indexDB

    1.关系型数据库和非关系型数据库 一致性: 事务完成时,必须让所有的数据具有一致的状态,例如要写入100个数据,前99个成功了,结果第100个不合法,此时事务会回滚到最初状态.这样保证事务结束和开始时 ...

  6. 百度病了,必应挂了,Yandex疯了。

    前天一篇<搜索引擎百度已死>的文章火遍了互联网圈.文中作者指出如今的百度搜索首页一大半都是百度自家的产品,比如你搜索特普朗,你会发现第一页的结果分别是:百度百科.贴吧.百家号.百家号.百家 ...

  7. 使用Keepalived构建LVS高可用集群

    LVS的DR模型配置+Keepalive部署 介绍 下图为DR模型的通信过程,图中的IP不要被扑结构中的IP迷惑,图里只是为了说明DR的通信原理,应用到本例中的拓扑上其工作原理不变. 拓扑结构 服务器 ...

  8. PHP 技能精进之 PHP-FPM 多进程模型

    PHP-FPM 提供了更好的 PHP 进程管理方式,可以有效控制内存和进程.可以平滑重载PHP配置.那么当我们谈论 PHP-FPM 多进程模型的时候,作为 PHPer 的你了解多少呢? 首先,让我们一 ...

  9. 安全研究 | Jenkins 任意文件读取漏洞分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...

  10. HTML/CSS初步了解

    一.CSS是什么? 它是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示 ...