SQL Server实现分页方法介绍
作者:.NET开发菜鸟 发布时间:2024-01-15 12:54:45
标签:SQL,Server,分页
一、创建测试表
CREATE TABLE [dbo].[Student](
[id] [int] NOT NULL,
[name] [nvarchar](50) NULL,
[age] [int] NULL)
二、创建测试数据
declare @i int
set @i=1
while(@i<10000)
begin
insert into Student select @i,left(newid(),7),@i+12
set @i += 1
end
三、测试
1、使用top关键字
top关键字表示跳过多少条取多少条
declare @pageCount int --每页条数
declare @pageNo int --页码
declare @startIndex int --跳过的条数
set @pageCount=10
set @pageNo=3
set @startIndex=(@pageCount*(@pageNo-1))
select top(@pageCount) * from Student
where ID not in
(
select top (@startIndex) ID from Student order by id
) order by ID
测试结果:
2、使用row_number()函数
declare @pageCount int --页数
declare @pageNo int --页码
set @pageCount=10
set @pageNo=3
--写法1:使用between and
select t.row,* from
(
select ROW_NUMBER() over(order by ID asc) as row,* from Student
) t where t.row between (@pageNo-1)*@pageCount+1 and @pageCount*@pageNo
--写法2:使用 “>”运算符
select top (@pageCount) * from
(
select ROW_NUMBER() over(order by ID asc) as row,* from Student
) t where t.row >(@pageNo-1)*@pageCount
--写法3:使用and运算符
select top (@pageCount) * from
(
select ROW_NUMBER() over(order by ID asc) as row,* from Student
) t where t.row >(@pageNo-1)*@pageCount and t.row<(@pageNo)*@pageCount+1
四、总结
ROW_NUMBER()只支持sql2005及以上版本,top有更好的可移植性,能同时适用于sql2000及以上版本、access。
这篇文章介绍了SQL Server实现分页方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
来源:https://www.cnblogs.com/dotnet261010/p/10784315.html
0
投稿
猜你喜欢
- 中介者模式中介者模式(Mediator Pattern)是一种常用的设计模式,用于解决各个对象之间的复杂依赖关系,使得各个对象之间可以独立地
- 1.筛选出目标值所在行 单列筛选# df[列名].isin([目标值])对当前列中存在目标值的行会返回True,不存在的返回Fal
- 一,元祖(tuple)1.元祖是不能修改的,通常写成圆括号中的一系列项,位置有序,固定长度2.实际上元祖支持字符串和列表的一般序列操作,“+
- 一、理论知识准备1.确定假设函数 如:y=2x+7 其中,(x,y)是一组数据,设共有m个2.误差cost 用平方误差代价函数 3.减小误差
- 本文研究的主要是Python进程间通信Queue的相关实例,具体如下。1.Queue使用方法:Queue.qsize():返回当前队列包含的
- 当where子句对某一列使用函数时,除非利用这个简单的技术强制索引,否则Oracle优化器不能在查询中使用索引。通常情况下,如果在WHERE
- 需要在两个文件中实现:首先,在talker.asp(在线名单)中做如下处理:<%p1=trim(application("v
- 适用的日志格式:106.45.185.214 - - [06/Aug/2014:07:38:59 +0800] "GET / HT
- 呃,看到这个标题,我们可以首先将IE系浏览器无视了。我承认,我是有极简主义倾向的,我希望能够使用最少的代码和图片做更多的事情。虽然CSS3仅
- "^/d+$" //非负整数(正整数 + 0)"^[0-9]*[1-9][0-9]*$" //正整数
- PHP作为开源语言,发展至今已有很多成熟的国内外开源系统,足以满足个人和企业用户自己建立WEB站点,下面则主要介绍PHP建站的流程和步骤。不
- 由于工作中涉及到生日编辑资料编辑,然后自己改了一下代码:<html><head> <meta charset=
- 如何优雅地解析命令行选项随着我们编程经验的增长,对命令行的熟悉程度日渐加深,想来很多人会渐渐地体会到使用命令行带来的高效率。自然而然地,我们
- 1.在python中excel的简单读写操作,推荐使用xlrd(特别是读操作) 2.到http://pypi.python.org/pypi
- 说起元宵节,各位有没有觉得这是咱们中国人最浪漫的节日呢?国人向来拘谨古板,一年到头都是小心谨慎地过日子,唯有元宵节这天可以纵情豪放一把。东风
- 大致介绍好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下1、首先利用request库去请求数据,天气预报
- 这篇文章主要介绍了python imread、newaxis用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- import turtle as tt.setup(800,600,0,0,)t.pensize(2)t.speed(1)t.color(&
- 原始需求:例如有一个列表:l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]希望把它转换成下面这种形式:[1, 2,
- 目录1. 线程的概念1.1 Manager_进程通信1.2 线程的概念2. 线程的基本使用3. 自定义线程_守护线程3.1 自定义线程3.2