三种数据库sql分页查询

原创 2013年12月04日 14:19:52

关于sql分页

今天用到分页了顺便就总结了一下

mysql 数据库:

mysql 中有分页的关键字limit,它可以实现分页很简单;
SELECT * FROM sys_user ORDER BY userid LIMIT startNo,total;

startNo 是查询开始的行数,total 是要查询出多少条;


sql server2005 数据库:
sql server 实现分页有两种方式可以实现;
一:利用 top 和 row_number() over(order by...)函数实现
  TOP 子句用于规定要返回的记录的数目  ,row_number()相当于伪列!
  select top total * from 
(select *,row_number() over(order by pid) rownum from person_base )x where x.rownum>startNo
startNo 是查询开始的行数,total 是要查询出多少条;
需要注意的是 row_number()函数后边必须有一个排序over(order by pid)
二:利用top 和 not in 实现
select top total * from person_base where pid not in
( select top startNo pid from person_base order by pid)
order by pid

根据别人测试的数据显示第二种方法比第一种方法效率要高


Oracle 数据库:
Oracle 实现分页需要用到伪列rownum
select * from (select *,rownum rno from person_base where rownum < = (pageNo * pageSize)) x where rno > ((pageNo - 1) * pageSize);
pageNo 是第几页  pageSize 是每页显示的个数

在Oracle中即有 rownum 又有row_number 但是两者是有区别的
1.rownum的特性(没有1就不会有2,没有3……以此类推下去)决定的 rownum只能从1开始
2.使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而函数row_number()在包含排序从句后是先排序再计算行号码。

相关文章推荐

高效的SQLSERVER分页查询(推荐)

Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID、YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询...

《SQLServer》------常用的分页查询语句

前言 在SqlServer中,分页查询是经常用到的查询语句,一个好的分页查询语句,不能能将代码省略,还能提高运行效率,下面我们来探讨一下SQLServer中的分页查询语句。 具体的业务逻辑是这样的,我...

常用3种数据库的Sql分页

在程序的开发过程中,处理分页是大家接触比较频繁的事件,因为现在软件基本上都是与数据库进行挂钓的。但效率又是我们所追求的,如果是像原来那样把所有满足条件的记录全部都选择出来,再去进行分页处理,那么就会多...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

MySql实现分页查询的SQL,mysql实现分页查询的sql语句

摘要:MySql数据库实现分页查询的SQL语句写法! 一:分页需求: 客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql...

Oracle、MySql、SQLServer 数据库中分页查询中的关键字总结

(一)、 mysql的分页查询

Advanced REST Client 的安装

1、解压Advanced-REST-client_v3.1.9.zip到当前文件夹,得到Advanced-REST-client_v3.1.9目录       2、在Chrome浏览器中打开:ch...

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 11: ordinal not in range

在安装yum install mysql-devel的时候报yum的错误。Loaded plugins: fastestmirror, security Traceback (most recent ...

sql分页查询语句(三种主流数据库)

Oracle Oracle的分页查询语句基本上可以按照这篇了,下一篇文章会通过例子来申述。下面简单讨论一下多表联合的情况。对最多见的等值表连接查询,CBO 一般可能会采用两种连接方式NESTED ...

三种SQL分页查询的存储过程

--根据MAX(MIN)ID CREATE PROC [dbo].[proc_select_id] @pageindex int=1,--当前页数 @pagesize int=10,--每页大小...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:三种数据库sql分页查询
举报原因:
原因补充:

(最多只允许输入30个字)