SQL2008-分页显示3种方法

方法1: 适用于 SQL Server 2000/2005/2008

SELECT TOP 10 *

FROM YieldRole

WHERE id NOT IN

(

SELECT TOP (10*(1-1))  id FROM YieldRole ORDER BY id

)

ORDER BY id

方法2: 适用于 SQL Server 2000/2005/2008 

--顺序写法:

SELECT TOP 10 *

FROM YieldRole

WHERE id >=

(

SELECT ISNULL(MAX(id),0)

FROM

(

SELECT TOP (10*(2-1)+1) id FROM YieldRole ORDER BY id

) A

)

ORDER BY id

--降序写法:

SELECT TOP 10 *

FROM YieldRole

WHERE id <=

(

SELECT ISNULL(MIN(id),0)

FROM

(

SELECT TOP (10*(2-1)+1) id FROM YieldRole ORDER BY id Desc

) A

)

ORDER BY id Desc

方法3: 适用于 SQL Server 2000/2005/2008  

SELECT TOP 10 *

FROM

(

SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM YieldRole

) A

WHERE RowNumber > 10*(2-1)

通过SQL 查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页)   效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页)    效率最差,但是最为通用

时间: 2024-08-03 23:17:55

SQL2008-分页显示3种方法的相关文章

SQL server分页的四种方法(算很全面了)

目录: 文章目录 方法一:三重循环 思路 代码实现 查询出的结果及时间 方法二:利用max(主键) 代码实现 查询出的结果及时间 方法三:利用row_number关键字 SQL实现 查询出的结果及时间 第四种方法:offset /fetch next(2012版本及以上才有) 代码实现 结果及运行时间 封装的存储过程 总结 ??这篇博客讲的是SQL server的分页方法,用的SQL server 2012版本.下面都用pageIndex表示页数,pageSize表示一页包含的记录.并且下面涉及

MongoDB实现分页(两种方法)

1.插入实验数据 偷懒用下samus,100条. 1 for (int i = 0; i < 100; i++) 2 { 3 Document doc = new Document(); 4 doc["ID"] = i; 5 doc["Msg"] = "value is "+ i; 6 mongoCollection.Insert(doc); 7 } 插入成功 2.分页 方法一:通过sike()与limit()方法 如下图, 通过 db.m

Oracle数据库分页的三种方法

-- 不能对ROWNUM使用>(大于1的数值).>=(大于或等于1的数值).=(大于或等于1的数值),否则无结果-- 所以直接用只能从1开始-- rownum >10 没有记录,因为第一条不满足去掉的话,第二条的rownum又成了1,所以永远没有满足条件的记录.select * from student where rownum>=1; --如果想要用rownum不从1开始,需按下面方法使用select a1.* from (select student.*,rownum rn f

DEDECMS教程:首页实现分页的两种方法

有两种办法可以实现: 一.用arclist标签+Ajax实现织梦首页分页 二.交叉栏目ID 实现织梦首页分页 一.用arclist标签+Ajax实现织梦首页分页 1.必须在首页<head></head>中引入 <script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"

Yii实现分页的两种方法

一. DAO实现分页. [Controller层] public function actionReport()     {         $sql = "select remitdate, sum(rate) sumrate from td_delivery              group by remitdate              order by remitdate desc";         $criteria=new CDbCriteria();      

ASP基础教程:ADO存取数据库时如何分页显示

<动态网站设计十八般武艺 --ASP 篇>一文从第一期至今已和朋友们一起度过了大半个年头,相信通过在这一段时间中的学习.实践到再学习.再实践,大家已经能够熟练运用 ASP 的内建对象. ActiveX 组件去编写一些基本的 ASP 应用程序.从我收到的朋友们的来信中可以明显的感觉到,大家的 ASP 功力正不断地提升.最近很多朋友来信希望我写一些 ASP 在现实运用中的实例.因此,从本期开始我决定将<动态网站设计十八般武艺 --ASP 篇>的定位从介绍和学习 ASP 基础知识转向到

java实现甘特图的2种方法:SwiftGantt和Jfree (转)

http://blog.sina.com.cn/s/blog_50a7c4a601009817.html 第一种方法使用SwiftGantt实现甘特图(进度图推荐这个) import java.awt.Color;import java.io.IOException;import java.util.GregorianCalendar;import com.yuxingwang.gantt.Config;import com.yuxingwang.gantt.GanttChart;import

EasyUI 之 DataGrid分页组件中文显示的两种方法

        在过去的这一段时间参与了高校云平台的评教系统,在系统的前端要求用MVC+Easyui,从今天开始就来给大家讲讲MVC+EasyUI的前端应用. JQueryEasyUI:一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签. 在系统中经常会使用到EasyUI-DataGrid(数据

asp网络编程:ASP中实现分页显示的七种武器

在微软的ASP编程体系中,ADO对象的建立,使得从网页访问数据库成为一件易事,特别是ADO的Recordset对象使得控制数据的输出显示更为方便.自由.而在Visual InterDev6.0(以下简称VI6.0)中,由于Script Object Model(以下简称SOM).Design-Time Control(以下简称DTC)以及Data Environment Object Model(以下简称DEOM)等对象模型的引入,使网页对数据库的访问设计显得更为方便. 因为主题方面的原因,关于