分享三种高效率SQL语句分页方法

 更新时间:2011年09月09日 17:18:27   作者:  
分享三种高效率SQL语句分页方法,需要的朋友可以参考下。
1.如果有一个自动增长的id字段,则:

定义二个变量:Page,PageCount

Select top PageCount * From [tb_code] Where id>=(select min(id) from (select top (Page-1)*PageCount+1 id from [tb_code] order by id desc) as t) order by id desc

原理,根据ID计算出(Page-1)页的最小值,然后用TOP关键字及可解决问题。


2.SELECT TOP 10 id,username From [tb_code] where id not in
( SELECT TOP 20000 id FROM tb_code ORDER BY username)

优点:此方法可以根据表中的任一个字段排序,在一个表中有几百万条记录时,仍有很高的效率,缺点是在大数据量的情况下效率略逊于第一种


3.SELECT TOP 10 id,username From
(SELECT TOP page*pagecount id, username FROM tb_code ORDER BY username)
DERIVEDTBL ORDER BY username DESC

优点:此方法可以根据表中的任一个字段排序.
缺点是效率最低


在SQL Server 2005中使用rownum分页(rownum函数使用方法介绍)

比方说要从表USER中查看第10到第20条之间的数据,那么SQL是这样实现的

SELECT * FROM (SELECT rownum rowcount,USER.* FROM USER) WHERE ROWCOUNT >=10 AND ROWCOUNT <20

其中函数ROWNUM,用来记录每一条数据所在的位置。

相关文章

  • 收藏的SQL知识以及SQL语句简单实践通俗易懂

    收藏的SQL知识以及SQL语句简单实践通俗易懂

    首先说明,这个笔者2年前学习SQL的遗漏下来的笔记,由于参加完腾讯的笔试,内容比较偏向数据机构和编译以及数据库,刚好要换台本本,心里不想把它弄死在硬盘里,觉得蛮好的,所以把它都分享了
    2012-06-06
  • navicat导入CSV文件详细操作步骤

    navicat导入CSV文件详细操作步骤

    通过Navicat我们可以很方便的完成备份和还原操作,下面这篇文章主要给大家介绍了关于navicat导入CSV文件的详细操作步骤,需要的朋友可以参考下
    2023-12-12
  • redis数据库查找key在内存中的位置的方法

    redis数据库查找key在内存中的位置的方法

    这篇文章主要介绍了redis数据库查找key在内存中的位置的方法,需要的朋友可以参考下
    2014-03-03
  • 数据库索引并不是万能药

    数据库索引并不是万能药

    几乎所有的业务项目都会涉及数据存储,今天,我们就以MySQL为例来深入理解下索引的原理,以及相关误区,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Mac系统Navicat的安装与使用教程

    Mac系统Navicat的安装与使用教程

    这篇文章主要介绍了Mac系统Navicat的破解安装与使用教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • SQL select distinct的使用方法

    SQL select distinct的使用方法

    这篇文章主要介绍了SQL中distinct的用法 ,需要的朋友可以参考下
    2015-11-11
  • db2数据库常用操作命令大全

    db2数据库常用操作命令大全

    这篇文章主要介绍了db2数据库常用操作命令大全,汇总了DB2的常用操作命令,分享给大家供大家参考,需要的朋友可以参考下
    2014-09-09
  • hadoop map-reduce中的文件并发操作

    hadoop map-reduce中的文件并发操作

    hadoop mapreduce最主要的应用是基于键值对的数据的运算,过滤,提取。但除此之外,我们可以顺带利用mapreduce高并发的特性做一些用常用方法难以处理的问题,比如大量数据,大量文件的并发读写
    2014-04-04
  • RBAC简介_动力节点Java学院整理

    RBAC简介_动力节点Java学院整理

    这篇文章主要介绍了RBAC简介,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • DeepinV20快速安装Mariadb的详细步骤

    DeepinV20快速安装Mariadb的详细步骤

    本文给大家介绍DeepinV20安装Mariadb的详细步骤,MariaDB数据库管理系统是MySQL的一个分支,添加一些功能支持本地的非阻塞操作和进度报告,具体内容详情跟随小编一起看看吧
    2021-07-07

最新评论