`
hanjian861202
  • 浏览: 164961 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

Sql:查询前几条记录yu分页的SQL语句

阅读更多
SQLServer,Oracle,MySQL查询前几条记录的SQL语句:

 

SQLServer: select top 10 from table;

Oracle: select * from table where rownum<=10;

MySql: select * from table limit 10.

========================================================================

 

分页查询:

sql sercer:not in 、max()、row_number 三种

http://topic.csdn.net/u/20100617/04/80d1bd99-2e1c-4083-ad87-72bf706cb536.html

Mysql:select * from table order by column limit 0,10;

Oracle:SELECT * FROM (SELECT a.*, ROWNUM rn FROM (select * from t order by detail) ) WHERE rn >= 10 AND rn <= 20
这条语句即是输出第10到第20条纪录,这里之所以用rownum rn,是把rownum转成实例,因为rownum本身只能用 <=的比较方式,只有转成实列,这样就可做 >=的比较了。

 

 在实际用途中,常常会要求取最近的几条纪录,这就需要先对纪录进行排序后再取rownum <=
一般常见的
SELECT * FROM (SELECT a.* FROM torderdetail a ORDER BY order_date DESC) WHERE ROWNUM <= 10
而在CSDN曾经发生过讨论,关于取近的10条纪录,有人给出这样的语句
SELECT a.* FROM torderdetail a WHERE ROWNUM <= 10 ORDER BY order_date DESC
之所以会出现这样的语句,主要是从效率上的考虑,前面条语句,是要进行全表扫描后再排序,然后再取10条纪录,后一条语句则不会全表扫描,只会取出10条纪录,很明显后条语句的效率会高许多。
那为什么会有争议呢,那就在于在执行顺序上争议,是先执行排序取10条纪录,还是取10条纪录,再排序呢?两种顺序取出来的结果是截然相反的,先排序再取10条,就是取最近的10条,而先取10条,再排序,则取出的最早的10条纪录。对于此语句,普遍的认为执行顺序是先取10条纪录再排序的。所以此语句应该是错误。但实际上并非如此,此语句的执行顺序和order by的字段有关系,如果你order by 的字段是pk,则是先排序,再取10条(速度比第一种语句快),而排序字段不是PK 时,是先取10条再排序,此时结果就与要求不一样了,所以第二种写法一定要在排序字段是主键的情况下才能保证结果正确。

====================================================================================

Oracle Connect By用法,实现递归查询:

http://shqkm.blog.163.com/blog/static/794804172010323102545265/

分享到:
评论

相关推荐

    关于SQL Server SQL语句查询分页数据的解决方案

    关于SQL Server SQL语句查询分页数据的解决方案 在日常工作中,我们经常需要处理大量数据,并从中获取特定页面的数据。特别是在Web应用开发中,为了提高用户体验,通常会将数据进行分页显示。针对这一需求,本文将...

    几条常见的数据库分页SQL 语句

    几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。

    在SQL Server中通过SQL语句实现分页查询

    ### 在SQL Server中通过SQL语句实现分页查询 #### 一、背景介绍 在数据库应用开发中,分页查询是一种常见的技术手段,用于改善用户体验并提高系统性能。特别是当数据量庞大时,一次性加载所有数据到前端不仅会导致...

    用标准的SQL语句实现查询记录分页

    其中,如何使用标准的SQL语句实现查询记录分页,是数据库操作中一个常见且实用的需求。分页查询不仅能够提高数据检索的效率,还能优化用户体验,尤其是在处理大量数据时显得尤为重要。下面,我们将详细解析几种实现...

    数据库分页SQL语句实现

    这里同样采用了一个嵌套查询的方式,首先获取满足条件的前30条记录(即第10页前的所有记录加上第10页的数据),然后再从中筛选出第10页的记录。 2. **注意事项:** - Oracle 的`ROWNUM`伪列只能用于查询语句,不...

    利用标准的SQL语句实现查询记录分页

    本文主要探讨如何使用标准SQL语句来实现查询记录的分页功能。 首先,我们要理解分页的基本原理。在网页展示大量数据时,一次性加载所有记录不仅可能导致页面加载速度变慢,还可能消耗大量服务器资源。因此,通常...

    常用SQL*Plus语句:

    "常用SQL*Plus语句" SQL*Plus是Oracle数据库的客户端工具,用于与Oracle数据库进行交互。SQL*Plus提供了多种功能,包括数据的定义、数据的控制、数据的查询等。 一、数据定义(DDL)语句: 1. CREATE语句:用于...

    SqlServer数据库中的分页语句

    本篇将深入探讨SQL Server实现分页查询的语句及其工作原理。 首先,我们要明白SQL Server分页查询的基本思想:一次查询只返回所需页面的数据,而不是一次性获取所有数据,这样可以减少网络传输量,减轻服务器压力,...

    jdbc 分页 sql语句

    例如,假设当前页码为2,每页显示10条记录,则对应的SQL查询条件应该是`ROWNUM BETWEEN 11 AND 20`。 3. **优化性能**:为了提高分页查询的效率,可以考虑以下几个方面: - 为经常用于排序和过滤的列建立索引。 -...

    分页sql语句以及sql语句语法大全

    提供详细的sql语句,常用sql语句,sql语句的进阶过程

    SQL语句语法

    SQL语句是结构化查询语言(Structured Query Language)的简称,是用于管理和处理关系数据库的标准语言。本篇文章将深入探讨SQL语句的基本语法,包括数据定义、数据操作、实用工具、事务处理和锁定、数据库管理、...

    SQL语句查询重复记录大全

    根据提供的标题、描述以及部分代码内容,我们可以整理出关于如何使用SQL语句查询及处理重复记录的相关知识点。本文将详细阐述这些知识点,并提供具体的SQL语句示例。 ### SQL语句查询所有重复记录 #### 1. 查询...

    使用sql语句查询的数据按时间递增累加

    执行上述SQL语句后,每条记录都将包含一个额外的 `ۼԤ` 字段,显示截至该时间点的累计预计值。例如,对于第一条记录,“2013-01-01”的累计预计值为300;对于第二条记录,“2013-02-01”的累计预计值为380(即300+...

    oracle消耗资源的sql查询语句记录

    ### Oracle消耗资源的SQL查询语句记录 在Oracle数据库管理中,监控和优化SQL查询是确保系统性能稳定的关键环节之一。对于那些消耗大量资源的SQL语句进行记录和分析可以帮助DBA快速定位问题并采取相应的优化措施。...

    Oracle Sql语句转换成Mysql Sql语句

    Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在MySQL中可能需要转换为DECIMAL、TEXT或BLOB。例如,Oracle的NUMBER可以转换为MySQL的DECIMAL或...

    sql语句万能生成器,sql语句,sql语句生成

    SQL语句是数据库操作的核心,它用于查询、插入、更新和删除数据,是任何数据库管理系统中的基础工具。在IT行业中,编写SQL语句是一项必备技能,但手动编写和调试SQL语句可能会耗费大量时间和精力,尤其在处理复杂...

    SQL语句用于分批显示结果 分页

    这里,你需要首先查询出前`每页显示数*(当前页数-1)`条记录,然后从主查询中排除这些记录,以获取下一页的数据。 3. Oracle 分页 Oracle 使用 `ROWNUM` 属性来限制返回的行数。然而,由于 `ROWNUM` 在查询时就确定...

    sql语句写分页通用代码

    标题中的“sql语句写分页通用代码”意味着我们将讨论如何编写一个可复用的SQL查询,它可以根据不同的需求和场景进行调整,例如改变每页的行数或切换不同的表进行查询。这样的代码通常具有较高的灵活性和可维护性。 ...

Global site tag (gtag.js) - Google Analytics