`
huang552
  • 浏览: 102575 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

利用Rownum来限制查询

阅读更多
现有一个商品销售表sale,表结构为:
month    char(6)      --月份
sell    number(10,2)   --月销售金额

create table sale (month char(6),sell number);
insert into sale values('200001',1000);
insert into sale values('200002',1100);
insert into sale values('200003',1200);
insert into sale values('200004',1300);
insert into sale values('200005',1400);
insert into sale values('200006',1500);
insert into sale values('200007',1600);
insert into sale values('200101',1100);
insert into sale values('200202',1200);
insert into sale values('200301',1300);
insert into sale values('200008',1000);
commit;

SQL>; select rownum,month,sell from sale where rownum=1;(可以用在限制返回记录条数的地方,保证不出错,如:隐式游标)

   ROWNUM MONTH       SELL
--------- ------ ---------
        1 200001      1000

SQL>; select rownum,month,sell from sale where rownum=2;(1以上都查不到记录)

没有查到记录

SQL>; select rownum,month,sell from sale where rownum>;5;
(由于rownum是一个总是从1开始的伪列,Oracle 认为这种条件不成立,查不到记录)


没有查到记录

只返回前3条纪录
SQL>; select rownum,month,sell from sale where rownum<4;

   ROWNUM MONTH       SELL
--------- ------ ---------
        1 200001      1000
        2 200002      1100
        3 200003      1200


如何用rownum实现大于、小于逻辑?(返回rownum在4—10之间的数据)(minus操作,速度会受影响)
SQL>; select rownum,month,sell from sale where rownum<10
  2  minus
  3  select rownum,month,sell from sale where rownum<5;

   ROWNUM MONTH       SELL
--------- ------ ---------
        5 200005      1400
        6 200006      1500
        7 200007      1600
        8 200101      1100
        9 200202      1200
分享到:
评论

相关推荐

    Oracle利用rownum查询出部分数据[归类].pdf

    总结一下,`ROWNUM`在Oracle中用于限制查询返回的行数,但它的行为并不直观,特别是在与`ORDER BY`一起使用时。理解`ROWNUM`的生成原理以及其与`ORDER BY`的交互对于优化SQL查询和获取预期结果至关重要。在实际的...

    oracle中利用关键字rownum查询前20名员工信息及rownum用法

    在编写查询时,确保先对数据进行排序,然后再应用ROWNUM限制,以获得预期的结果。对于需要筛选特定范围的数据,可以考虑使用其他方法,如子查询或分析函数(如RANK()、DENSE_RANK()或ROW_NUMBER()),它们提供了更...

    Oracle数据库学习指南

    40. 如何正确利用Rownum来限制查询所返回的行数 41. 什么是ROWID,为什么需要它 42. 手工安装数据库时需要安装那些系统包 43. 手工创建数据库的全部脚本及说明 44. 提高Oracle数据库应用系统安全的举例与分析 ...

    oracle数据库技术文档

    包内目录: 1、ORACLE 体系结构 2、sql_plus函数 3、sqlplus常用命令 4、sql 5、锁和表分区 6、数据库对象 7、oop 8、PLSQL ...13、如何正确利用rownum来限制查询所返回的行数 每个目录都是单个文件

    Oracle rownum.docx

    Oracle的ROWNUM是一个非常重要的概念,它在数据库查询中起到限制返回结果数量和进行特定行选择的作用。ROWNUM是一个伪列,表示从查询结果中返回的每...在实际应用中,合理利用ROWNUM能显著提高数据检索的效率和准确性。

    oracle的rownum用法

    为了更有效地利用`ROWNUM`,可以考虑以下策略: - 当需要限制返回的行数时,可以结合`WHERE ROWNUM 和`ORDER BY`一起使用,以获取前n行。 - 若要选择特定范围的行,可以使用子查询和临时变量,例如`SELECT * FROM ...

    伪列(pseudo column)ROWNUM介绍

    ### 伪列(pseudo column)ROWNUM介绍 #### ROWNUM伪列概述 在Oracle数据库中,`ROWNUM`是一个非常有用的伪列(也被...通过结合使用子查询、别名以及绑定变量等技术,我们可以更高效地利用`ROWNUM`来满足各种查询需求。

    Oracle中使用伪列rownum实现分页查询

    在分页查询中,我们可以巧妙地利用`ROWNUM`来限制返回的行数,从而实现分页。 例如,如果你想要获取`EMP`表中薪水最高的前三名员工的信息,你可以编写如下的SQL语句: ```sql SELECT * FROM (SELECT * FROM emp ...

    oracle_SQL中rowid与rownum的使用

    注意:在Oracle 12c及更高版本中,可以使用`FETCH FIRST N ROWS ONLY`来代替`ROWNUM`进行分页。 总结,`ROWID`和`ROWNUM`在Oracle SQL中各自扮演着不可或缺的角色。`ROWID`提供了直接访问数据的快速途径,而`ROWNUM...

    oracle_SQL-rowid--rownum.zip_oracle

    在实际开发中,理解并合理利用`ROWID`和`ROWNUM`,可以有效地提升Oracle数据库的管理和查询效率。同时,从提供的压缩文件名来看,除了`oracle_SQL中rowid与rownum的使用.doc`直接相关外,其他文件如`ssi2配置整合...

    Oracle分页技术

    在分页查询中,我们可以利用ROWNUM来限制返回的行数,例如`WHERE ROWNUM 。 2. **嵌套查询**:Oracle分页通常涉及嵌套查询,最内层的查询获取所有数据,中间层添加ROWNUM限制,最外层则根据实际的分页需求进行筛选...

    嵌套查询总结例子

    2. **第二层嵌套**:在此基础上添加ORDER BY子句进行排序,并使用ROWNUM伪列,但为了避免ROWNUM的优先级高于ORDER BY的问题,需要通过嵌套查询来改变执行顺序。具体做法是在第二层查询中使用ROWNUM AS ROW_ID,然后...

    Oracle的分页查询语句 Oracle分页的存储过程

    总的来说,Oracle的分页查询涉及到多个层面的优化策略,包括选择合适的分页方式、利用查询提示以及考虑联接方法。理解这些概念有助于编写更高效的分页查询语句,尤其在处理大数据量的场景中。在实际应用中,应根据...

    三种数据库利用SQL语句进行高效果分页,分页

    Oracle 中可以使用 `ROWNUM` 来限制返回的行数。下面是一个例子,同样是分页查询 `components` 表的第 2 页,每页 10 条记录: ```sql SELECT * FROM components WHERE id NOT IN (SELECT id FROM components WHERE...

    Oracle分页查询Oracle分页查询

    1. **限制内层查询的行数**:可以通过添加 `WHERE` 子句来限制内层查询返回的行数,从而避免全表扫描。 ```sql SELECT * FROM ( SELECT ROWNUM rnum, t.* FROM ( SELECT * FROM employees WHERE department_id ...

    delphi分页查询 利用sql2000存储过程分页

    通过这两个参数,我们可以计算出要查询数据的开始位置(StartIndex)和结束位置(EndIndex),然后在SQL语句中使用这些值来限制返回的结果集。 在SQL Server 2000中,由于不支持直接的OFFSET/FETCH或LIMIT/OFFSET...

    Oracle分页实现

    利用ROWNUM进行分页的基本思想是在内层查询中筛选出所有需要的数据,然后在外层查询中根据ROWNUM的值进行筛选,以此实现分页效果。具体语法如下: ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT ...

    三种数据库利用SQL语句进行高效果分页

    ### 三种数据库利用SQL语句进行高效分页 在数据处理和展示中,分页是一项常见且重要的技术。尤其在数据库查询中,合理地使用分页可以极大地提高系统的响应速度和用户体验。本文将详细介绍如何在三种不同的数据库...

    Oracle分页查询(很不错的介绍)

    总的来说,Oracle的分页查询通过嵌套查询和`ROWNUM`伪列来实现。正确地使用分页查询可以显著提高用户体验,减少网络传输的数据量,同时也有助于数据库服务器更好地管理资源。在设计和优化数据库查询时,分页策略是不...

Global site tag (gtag.js) - Google Analytics