MySQL

MySQL数据库中提供了limit关键字用来限制返回的结果集,语法为“Limit 需要返回记录的首行行数,要返回记录的条数”,例如:

SELECT * FROM T_EMPLOYEE ORDER BY EMPLOYEE_ID LIMIT 10,5

查询结果就是5行数据,从第10行开始。

SQLServer2000

微软SQL Server2000提供了TOP关键字用来返回结果集中的前N条记录,语法为“SELECT TOP 条数 字段列表 FROM 表名”。例如:

SELECT TOP 10 * FROM T_EMPLOYEE ORDER BY EMPLOYEE_ID DESC

返回10条记录。
MSSQLServer 2000并没有提供类似Limit的功能——返回从第N行开始的M行数据,不过这也不是不能实现,想必了解数据库的童鞋都晓得:

SELECT TOP 10 * FROM T_EMPLOYEE
WHERE EMPLOYEE_ID IN
(SELECT TOP 14 EMPLOYEE_ID FROM T_EMPLOYEE ORDER BY EMPLOYEE_ID ASC)
ORDER BY EMPLOYEE_ID DESC

这样、同样可以查询从第5条开始的10条数据。

SQL Server2005

MSSQLServer2005兼容几乎所有的MSSQLServer2000的语法,所以、在此就可以使用SQLServer2000的语法来解决限制结果集行数的功能。另外、SQLServer2005提供了新特性帮助更好的限制结果集行数的问题,这个新特性就是窗口函数ROW_NUMBER()。语法为

“SELECT ROW_NUMBER() OVER(ORDER BY 排序字段), 其他字段 FORM T_表名”。例如:
SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY EMPLOYEE_ID) AS ROW_NUM, EMPLOYEE_NAME FROM T_EMPLOYEE
)
WHERE ROW_NUM < 15 AND ROW_NUM >= 5

注意、开窗函数只能出现在SELECT或者ORDER BY子句中。

Oracle

Oracle也支持开窗函数ROW_NUMBER(),其语法和MSSQLSERVER2005相同,上面的SQL语句在Oracle中也可以执行。氮素、这里我们主要介绍另一个保留字的功能。保留字rownum。例如:

SELECT * FROM (SELECT ROWNUM AS ROWNO, EMPLOYEE_NAME FROM T_EMPLOYEE WHERE ROWNO < 15
)
WHERE ROWNO >= 5

注意、rownum从1开始计数,当第一条记录不符合where条件时,下一条记录依旧从1开始计数。所以、这里需要注意上面子查询是从小于15开始的,若是从大于等于5查询,将查不到任何数据。

DB2

DB2也支持开窗函数ROW_NUMBER(),其用法和MSSQLServer2005以及Oracle相同。

SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY EMPLOYEE_ID) AS ROW_NUM, EMPLOYEE_NAME FROM T_EMPLOYEE
)
WHERE ROW_NUM < 15 AND ROW_NUM >= 5

该语句这里也是可以执行的,除此之外,DB2还提供了FETCH关键字用来提取结果集的前N行,其语法为“FETCH FIRST 行数 ROWS ONLY”,比如:

SELECT * FROM T_EMPLOYEE ORDER BY EMPLOYEE_ID FETCH FIRST 5 ROWS ONLY

上面就可以获取结果集中前5名EMPLOYEE的信息了。
注意、fetch关键字需要放置在order by子句后面。

参考链接

各种数据库的查询结果限制条数的SQL语法相关推荐

  1. oracle 查询每组条数,Oracle SQL查询:根据时间检索每组的最新值

    这是一个完整的,经过测试的例子. CREATE TABLE tbl1 (ID NUMBER, dt DATE, quantity NUMBER); DELETE FROM tbl1; insert i ...

  2. 不同数据库中查询前几条记录的用法(SQL Server/Oracle/Postgresql)

    SQL在不同数据库中查询前几条记录的用法分类 1. orACLE Select * FROM TABLE1 Where ROWNUM<=N 2. INFORMIX Select FIRST N ...

  3. mysql查询优化count(*)-查询记录总条数(二)

    前文提到查询记录总条数有时候会使用到where来限定查询范围. 从优化原则来说,where可能会降低效率. 但是如果where设定的合理,符合一定条件,也可以实现查询优化效果. 如果条件是索引列,那么 ...

  4. MySQL数据库——MySQL LIMIT:限制查询结果的条数

    当数据表中有上万条数据时,一次性查询出表中的全部数据会降低数据返回的速度,同时给数据库服务器造成很大的压力.这时就可以用 LIMIT 关键字来限制查询结果返回的条数. LIMIT 是 MySQL 中的 ...

  5. 4、 LIMIT:限制查询结果的条数

    当数据表中有上万条数据时,一次性查询出表中的全部数据会降低数据返回的速度,同时给数据库服务器造成很大的压力.这时就可以用 LIMIT 关键字来限制查询结果返回的条数. LIMIT 是 MySQL 中的 ...

  6. SQL使用分组查询并计算条数

    sql分组查询使用COUNT计算每一组的条数并添加条件 SELECTf.jxlx,COUNT(*) AS 全部,COUNT( CASE WHEN ( f.zt = 1 ) THEN jxlx END ...

  7. mybatis一对多查询Pagehelper分页条数不对

    问题:在写mybatis一对多的时候用到了Pagehelper进行分页,然后发现确实能分页,但是展示的条数不对,后来研究了发现原来Pagehelper插件在一对多查询的时候默认的是对多的一方进行的分页 ...

  8. mongodb 高级查询 统计记录条数

    使用count()方法查询表中的记录条数,例如,下面的命令查询表users的记录数量: db.users.find().count();

  9. mysql数据库中查询第几条到第几条数据_在 mysql 数据库中,从查询结果的第四条记录开始选取5条记录,下面 sql 语句正确的是( )...

    [单选题]同一种货物,在同一线路上或平行线路上作相对方向的运送,而与对方运程的全部或一部分发生重迭交错的运输被称为( ). [多选题]水闸一般由()三部分组成 [单选题]在一个常规的统计表内,非必需包 ...

最新文章

  1. 【Leetcode】刷题之路2(python)
  2. Elasticsearch 6.3.1、Head插件 安装及配置
  3. 中文分词jieba的简单使用
  4. 启动jar包 服务方式
  5. 2840页的计算机毕业论文,德州奥斯汀华人博士究竟写了啥
  6. 实战Solaris 10
  7. mysql aes java解密_加密/解密的Java函數,如Mysql的AES_ENCRYPT和AES_DECRYPT
  8. 深度学习(三十六)——R-FCN, FPN, RetinaNet, CornerNet
  9. laradock双版本php,自己撸一个 LaraDock(使用 Docker LNMP 部署 PHP 开发环境)
  10. C++ 类访问控制(public/protected/private)
  11. eclipse debug 工程源码时出现source not found问题解决
  12. 别再一知半解啦,索引其实就这么回事!
  13. 自学python顺序-python数据结构学习之实现线性表的顺序
  14. Android Studio解决:Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed
  15. [译] 第二天:AngularJS - 认识AngularJS
  16. [转]Java 强引用、 软引用、 弱引用、虚引用
  17. Java:关于负数的向上转型
  18. [FAQ10908][Message]开启固定拨号FDN功能(无法发短信的原因),发送信息时如何做FDN check
  19. redis在CentOs服务器上的安装和设置开机自启动
  20. android 百度唤醒,Android百度语音唤醒(has no license,错误码11002)

热门文章

  1. 十大 程序员 接私活平台
  2. 一文了解websocket和socket(论点:概念、流程、区别)
  3. 优酷背后的大数据秘密【大数据开发实战技术】
  4. 荐书:《架构探险:从零开始写分布式服务框架》
  5. 茅以升作证婚人的结婚证书
  6. android view超出屏幕_自定义View超出屏幕大小,如何滑屏
  7. 解决python绘图中中文及其他符号显示问题
  8. 报错:MethodHandle.invoke and MethodHandle.invokeExact are only supported starting with Android O
  9. 【鲁班猫】安装python3.9.12
  10. C++常用设计模式:单例设计模式(饿汉式、懒汉式)