基于sqlserver的四种分页方式总结
第一种:ROW_NUMBER() OVER()方式
select * from (
select *, ROW_NUMBER() OVER(Order by ArtistId ) AS RowId from ArtistModels
) as b
where RowId between 10 and 20
---where RowId BETWEEN 当前页数-1*条数 and 页数*条数---
执行结果是:
第二种方式:offset fetch next方式(SQL2012以上的版本才支持:推荐使用 )
select * from ArtistModels order by ArtistId offset 4 rows fetch next 5 rows only
--order by ArtistId offset 页数 rows fetch next 条数 rows only ----
执行结果是:
第三种方式:--top not in方式 (适应于数据库2012以下的版本)
select top 3 * from ArtistModels
where ArtistId not in (select top 15 ArtistId from ArtistModels)
------where Id not in (select top 条数*页数 ArtistId from ArtistModels)
执行结果:
第四种方式:用存储过程的方式进行分页
CREATE procedure page_Demo
@tablename varchar(20),
@pageSize int,
@page int
AS
declare @newspage int,
@res varchar(100)
begin
set @newspage=@pageSize*(@page - 1)
set @res='select * from ' +@tablename+ ' order by ArtistId offset '+CAST(@newspage as varchar(10)) +' rows fetch next '+ CAST(@pageSize as varchar(10)) +' rows only'
exec(@res)
end
EXEC page_Demo @tablename='ArtistModels',@pageSize=3,@page=5
执行结果:
ps:今天搞了一下午的分页,通过上网查资料和自己的实验,总结了四种分页方式供大家参考,有问题大家一起交流学习。
相关推荐
-
sql server实现分页的方法实例分析
本文实例讲述了sql server实现分页的方法.分享给大家供大家参考,具体如下: declare @index int,@num int set @index = 1--当前页 set @num = 2--单页包含的行数 --分页1 select top (@num) * from ppohd where doccode not in ( select top (@num * (@index -1)) doccode from ppohd order by doccode ) order by
-
真正高效的SQLSERVER分页查询(多种方案)
Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询每页30条,查询第1500页(即第45001-45030条数据),字段ID聚集索引,YEAR无索引,Sqlserver版本:2008R2 第一种方案.最简单.普通的方法: 复制代码 代码如下: SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT T
-
sqlserver分页的两种写法分别介绍
第一种是最传统的写法,用存储过程中的变量作为分页的乘数 复制代码 代码如下: [c-sharp] view plaincopyprint?create proc p_paged1 @pageSize int,@currentPage int as select top (@pageSize) * from student where id not in (select top (@pageSize*(@currentPage-1)) id from student) go exec p_page
-
基于sqlserver的四种分页方式总结
第一种:ROW_NUMBER() OVER()方式 select * from ( select *, ROW_NUMBER() OVER(Order by ArtistId ) AS RowId from ArtistModels ) as b where RowId between 10 and 20 ---where RowId BETWEEN 当前页数-1*条数 and 页数*条数--- 执行结果是: 第二种方式:offset fetch next方式(SQL2012以上的版本才支持:推
-
Android 基于Bitmap的四种图片压缩方式
知识点介绍 Android 中图片主要以 Bitmap 的形式存在,所以压缩图片主要就是减少 Bitmap 的大小.Bitmap 的大小可以通过如下的公式计算得到:size = width * height * 单个像素所占字节数.因此压缩图片通过改变公式中的三个变量即可实现. 单个像素所占空间大小在 Android 中有多种,详见如下 格式 所占空间 说明 Bitmap.Config.ALPHA_8 1B 该种格式表示图片只有透明度没有颜色,1个像素占用8位 Bitmap.Config.ARG
-
thinkPHP5.1框架中Request类四种调用方式示例
本文实例讲述了thinkPHP5.1框架中Request类四种调用方式.分享给大家供大家参考,具体如下: 1. 传统调用 访问方式:http://127.0.0.1/demo/demo3/test?name=kk&age=22 <?php /** * Created by PhpStorm. * User: 10475 * Date: 2018/8/27 * Time: 22:59 */ namespace app\demo\controller; use think\Request; cl
-
SpringBoot异步处理的四种实现方式
本篇文章我们以SpringBoot中异步的使用(包括:异步调用和异步方法两个维度)来进行讲解. 异步请求与同步请求 我们先通过一张图来区分一下异步请求和同步请求的区别: 在上图中有三个角色:客户端.Web容器和业务处理线程. 两个流程中客户端对Web容器的请求,都是同步的.因为它们在请求客户端时都处于阻塞等待状态,并没有进行异步处理. 在Web容器部分,第一个流程采用同步请求,第二个流程采用异步回调的形式. 通过异步处理,可以先释放容器分配给请求的线程与相关资源,减轻系统负担,从而增加了服务器对
-
mysql表的四种分区方式总结
目录 1.什么是表分区? 2.表分区与分表的区别 3.表分区有什么好处? 4.分区表的限制因素 5.如何判断当前MySQL是否支持分区? 6.MySQL支持的分区类型有哪些? 6.1.RANGE分区 6.1.1.根据数值范围 6.1.2.根据TIMESTAMP范围 6.1.3.根据DATE.DATETIME范围 6.1.4.根据多列范围 6.1.5.RANGE分区在如下场合特别有用 6.2.LIST分区 6.3.HASH分区 6.4.KEY分区 总结 1.什么是表分区? mysql数据库中的数据
-
详解mybatis三种分页方式
目录 前言 一.Limit分页 二.RowBounds分页(不推荐使用) 三.Mybatis_PageHelper分页插件 总结: 前言 分页是我们在开发中绕不过去的一个坎!当你的数据量大了的时候,一次性将所有数据查出来不现实,所以我们一般都是分页查询的,减轻服务端的压力,提升了速度和效率!也减轻了前端渲染的压力! 注意:由于 java 允许的最大整数为 2147483647,所以 limit 能使用的最大整数也是 2147483647,一次性取出大量数据可能引起内存溢出,所以在大数据查询场合慎
-
浅谈Java中的四种引用方式的区别
强引用.软引用.弱引用.虚引用的概念 强引用(StrongReference) 强引用就是指在程序代码之中普遍存在的,比如下面这段代码中的object和str都是强引用: Object object = new Object(); String str = "hello"; 只要某个对象有强引用与之关联,JVM必定不会回收这个对象,即使在内存不足的情况下,JVM宁愿抛出OutOfMemory错误也不会回收这种对象. 比如下面这段代码: public class Main { publi
-
Android开发之基本控件和四种布局方式详解
Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局.而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式.先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio.开始今天的正题, 虽然A
-
浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
在Javascript定义一个函数一般有如下三种方式: 函数关键字(function)语句: function fnMethodName(x){alert(x);} 函数字面量(Function Literals): var fnMethodName = function(x){alert(x);} Function()构造函数: var fnMethodName = new Function('x','alert(x);') // 由Function构造函数的参数个数可变.最后一个参数写函数体
-
input 禁止输入特殊字符的四种实现方式
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">昨天项目搜索的时候报错,蛋疼的是生产库中的,看了下日志,原因是用户搜索的时候输入了特殊字符,没办法最快捷的办法是直接把用户输入的数据进行筛选,去掉特殊字符</span> 有些特殊字符传入到后台是会产生错误的 有可能会sql注入,所以从根本上拦截 下面一起探讨下input禁止输
随机推荐
- 第十四节 命名空间 [14]
- 详解在Spring Boot中使用Mysql和JPA
- Java 程序员容易犯的10个SQL错误
- Python制作Windows系统服务
- 极简的Python入门指引
- 上一篇,下一篇过程代码
- ubuntu 16.04下mysql5.7.17开放远程3306端口
- JavaScript中利用for循环遍历数组
- 由php的call_user_func传reference引发的思考
- JavaScript中几个重要的属性(this、constructor、prototype)介绍
- 迁移sql2005到sql2008r2步骤
- jquery做个日期选择适用于手机端示例
- 浅析ES6的八进制与二进制整数字面量
- 完美解决一开机就自动打开记事本的办法
- Java 中的字符串常量池详解
- 学习Winform文本类控件(Label、Button、TextBox)
- vue2.0 better-scroll 实现移动端滑动的示例代码
- 如何编写Go语言中间件的实例教程
- 小程序实现列表点赞功能
- Python openpyxl 遍历所有sheet 查找特定字符串的方法