(转)SqlServer2005高效分页sql查询语句汇总
sqlserver2005不支持关键字limit ,所以它的分页sql 查询 语句 将不能用mysql的方式进行,幸好sqlserver2005提供了top,rownumber等关键字,这样就能通过这几个关键字实现分页。 下面是本人在网上查阅到的几种 查询 脚本的写法: 几种sqlserver2005 高效 分
sqlserver2005不支持关键字limit ,所以它的分页sql查询语句将不能用mysql的方式进行,幸好sqlserver2005提供了top,rownumber等关键字,这样就能通过这几个关键字实现分页。
下面是本人在网上查阅到的几种查询脚本的写法:
几种sqlserver2005高效分页sql查询语句
top方案:
???sql code
select top 10 * from table1
???where id not in(select top 开始的位置 id from table1)
max:
????sql code
select top 10 * from table1
????where id>(select max(id)
????from (select top 开始位置 id from table1order by id)tt)
row:
? ? sql code
select *
from (
????select row_number()over(order by tempcolumn)temprownumber,*
????from (select top 开始位置 10 tempcolumn=0,* from table1)t
)tt
where temprownumber>开始位置
3种分页方式,分别是max方案,top方案,row方案
效率:
第1:row
第2:max
第3:top
缺点:
max:必须用户编写复杂sql,不支持非唯一列排序
top:必须用户编写复杂sql,不支持复合主键
row:不支持sqlserver2000
测试数据:
共320万条数据,每页显示10条数据,分别测试了2万页、15万页和32万页。
页码,top方案,max方案,row方案
2万,60ms,46ms,33ms
15万,453ms,343ms,310ms
32万,953ms,720ms,686ms
是一种通过程序拼接sql语句的分页方案,
用户提过的sql语句不需要编写复杂的sql逻辑
诺用户提供sql如下
sql code
select * from table1
?
从第5条开始,查询5条,处理后sql变为
sql code
select *
from (
????select row_number()over(order by tempcolumn)temprownumber,*
????from (select top 10 tempcolumn=0,* from table1)t
)tt
where temprownumber>5
?
这是什么意思呢?分解一下
首先将用户输入的sql语句转稍稍修改
在select后添加top 开始位置 条数变成
再外加一列tempcolum,变成这样
sql code
select top 20 tempcolumn=0,* from clazz
嵌套一层,这样便可查询出行号
???刚才那个列就是用来这里order by用的
(也不知道sqlserver的row_number函数为什么必须要order by)
sql code
select row_number()over(order by tempcolumn)temprownumber,*
from (修改过的查询)t
再套一层,过滤掉行号小于开始位置的行
sql code
select * from (第二层)tt
where temprownumber>10

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

HQL和SQL在Hibernate框架中进行比较:HQL(1.面向对象语法,2.数据库无关的查询,3.类型安全),而SQL直接操作数据库(1.与数据库无关的标准,2.可执行复杂查询和数据操作)。

12306订票app下载最新版是一款大家非常满意的出行购票软件,想去哪里就去那里非常方便,软件内提供的票源非常多,只需要通过实名认证就能在线购票,所有用户的出行车票机票都可以轻松买到,享受不同的优惠折扣。还能提前开启预约抢票,预约酒店、专车接送都是可以的,有了它想去哪里就去那里一键购票,出行更加简单方便,让大家的出行体验更舒服,现在小编在线详细为12306用户们带来查看历史购票记录的方法。 1.打开铁路12306,点击右下角我的,点击我的订单 2.在订单页面点击已支付。 3.在已支付页

学信网如何查询自己的学历?在学信网中是可以查询到自己的学历,很多用户都不知道如何在学信网中查询到自己的学历,接下来就是小编为用户带来的学信网查询自己学历方法图文教程,感兴趣的用户快来一起看看吧!学信网使用教程学信网如何查询自己的学历一、学信网入口:https://www.chsi.com.cn/二、网站查询:第一步:点击上方学信网地址,进入首页点击【学历查询】;第二步:在最新的网页中点击如下图箭头所示的【查询】;第三步:之后在新页面点击【的登陆学信档案】;第四步:在登陆页面输入信息点击【登陆】;

C盘空间告急!5种高效清理方法大揭秘!在使用电脑的过程中,不少用户会遇到C盘空间告急的情况,尤其是在存储或安装大量文件后,C盘的可用空间会迅速减少,进而影响电脑性能和运行速度。此时,对C盘进行清理是十分必要的。那么,该如何高效清理C盘呢?接下来,本文将揭示5种高效的清理方法,帮助您轻松解决C盘空间告急的问题。一、清理临时文件临时文件是电脑在运行时产生的一些暂

PHP数组分页有两种最常见的方式:使用array_slice()函数:计算要跳过的元素数量,然后提取指定范围的元素。使用内置迭代器:实现Iterator接口,rewind()、key()、current()、next()和valid()方法用于遍历指定范围内的元素。

Go语言的功能与特点Go语言,又称Golang,是一种由Google开发的开源编程语言,设计初衷是为了提升编程效率和可维护性。自诞生以来,Go语言在编程领域展现出了独特的魅力,受到了广泛的关注和认可。本文将深入探讨Go语言的功能与特点,并通过具体的代码示例来展示其强大之处。原生并发支持Go语言天生支持并发编程,通过goroutine和channel的机制实现

Python和C++是两种流行的编程语言,各有其优势和劣势。对于希望学习编程的人来说,选择学习Python还是C++往往是一个重要决定。本文将探讨Python和C++的学习成本,并讨论哪种语言更值得投入时间和精力。首先,让我们从Python开始。Python是一种高级、解释型的编程语言,以其简单易学、代码清晰、语法简洁等特点而闻名。相比于C++,Python

Go语言中SQL的基本概念及用法解析SQL(StructuredQueryLanguage)是一种专门用来管理和操作关系数据库的语言。在Go语言中,我们通常使用SQL来执行数据库操作,例如查询数据、插入数据、更新数据和删除数据等。本文将介绍Go语言中SQL的基本概念及用法,并附带具体的代码示例。1.连接数据库在Go语言中,我们可以使用第三方库来连接数据
