`
念QC
  • 浏览: 9420 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

oracle学习 3:rownum 的妙用,分组操作

 
阅读更多

在编写报表过程中,常常要对结果集分组操作,得到一些业务层需要的统计数据。这时候,rownum就能大显身手。

   首先,我们可以对分组进行分别编号,如下:

   select t.dept_email,
       t.dept_name,
       t.create_date,
       row_number() over(partition by t.dept_email order by t.dept_name) rn
  from  DEPTS t
 where 1 = 1
 group by t.dept_email, t.dept_name, t.create_date
having t.create_date <= to_date(\uD93E\uDF48/01/01', 'yyyy/mm/dd')
 order by t.dept_email

 

这 条查询的功能是: 从 部门 表中以部门email,部门名称,部门创建日期为条件分组。并为以email为条件的分组按部门名称排序,并按顺序添加编号row_number 。所得的结果集再根据having子句里的条件过滤,把所有创建时间小于2012年1月1日的结果找出来。

 

 

 

为结果集分组编号以后,就可以根据编号进一步处理数据

转载自:http://abandontofree.i.sohu.com/blog/view/204476228.htm

分享到:
评论

相关推荐

    Oracle学习笔记(rownum和rowid)

    Oracle学习笔记(rownum和rowid),有具体的代码案例讲解rownum和rowid

    对于 Oracle 的 rownum 问题

    对于 Oracle 的 rownum 问题,很多资料都说不支持&gt;,&gt;=,=,between...and,只能用以上符号(&lt;、、!=),并非说用&gt;,&gt;=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来...

    oracle rownum 学习

    Oracle ROWNUM学习 Oracle ROWNUM是Oracle系统顺序分配的行号,用于限制查询返回的总行数。ROWNUM是一个伪字段,不能以任何表的名称作为前缀。下面是对ROWNUM的详细讲解: 一、ROWNUM的基本用法 ROWNUM是一个伪...

    oracle rownum和distinct

    "Oracle 中的 ROWNUM 和 DISTINCT" Oracle 中的 ROWNUM 和 DISTINCT 是两个非常重要的关键词,它们在查询数据时发挥着至关重要的作用。然而,许多开发者在使用这两个关键词时,却常常会遇到一些不太理解的地方,...

    ORACLE 中ROWNUM用法总结

    同样地,`BETWEEN`操作符在`ROWNUM`的使用上也有局限性。例如,`ROWNUM BETWEEN 1 AND 10`可以正常工作,但`ROWNUM BETWEEN 2 AND 10`则可能返回空集,原因与上述误区相同。 **解决方法**:采用相同的子查询和双`...

    ROWNUM的使用技巧

    另外一种实现方式是使用 ROWNUM 和 MINUS 操作符结合来实现分页查询。例如: ```sql select * from css_bl_view a where capture_phone_num = '(1) 925-4604800' and rownum minus select * from css_bl_view a...

    Oracle中rownum的使用

    Oracle中rownum的使用

    oracle rownum 的使用 和sqlserver有区别的!

    ### Oracle ROWNUM 使用详解与 SQL Server 区别 在数据库操作中,ROWNUM 是一个非常重要的伪列,主要用于返回查询结果的行序号。它在 Oracle 数据库中有着广泛的应用场景,尤其是在需要对查询结果进行分页显示、...

    在oracle中灵活使用Rownum和rowId

    注意:在使用 `ROWNUM` 进行查询时,如果不加任何排序操作,则返回的顺序是不确定的,因为Oracle默认不会按照特定顺序进行排序。 ##### 4. 结合ORDER BY使用ROWNUM 为了确保查询结果按照特定顺序排列,可以结合 `...

    Oracle中ROWNUM的使用技巧.docx

    5. **其他方法**:除了ROWNUM,还可以考虑使用Oracle的其他高级查询功能,如`FETCH FIRST N ROWS ONLY`(需要Oracle 12c及以上版本),它可以直接用于实现分页,同时保持排序的正确性。 总之,ROWNUM在Oracle中是一...

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

    注意:对 rownum(伪列) 只能使用 &lt; 或 &lt;=, 而用 =, &gt;, &gt;= 都将不能返回任何数据  例:查询工资前20名的员工姓名,工资 ,工资由高到低 Select rownum,first_name,salary from (Select first_name, salary ...

    解析oracle的rownum

    如果我们想要找到从第二行记录以后的记录,当使用 ROWNUM&gt;2 是查不出记录的,原因是由于 ROWNUM 是一个总是从 1 开始的伪列,Oracle 认为 ROWNUM&gt; n(n&gt;1 的自然数)这种条件依旧不成立,所以查不到记录。 ```sql SQL...

    oracle-rownum用法

    如果想找到从第二行记录以后的记录,使用 `ROWNUM&gt;2` 是查不出记录的,原因是 ROWNUM 是一个总是从 1 开始的伪列,Oracle 认为 `ROWNUM&gt; n`(n&gt;1 的自然数)这种条件不成立。解决方法是使用子查询,例如: ```sql ...

    oracle的rownum用法

    3. 对于`BETWEEN`操作符,`BETWEEN 1 AND 10`或`BETWEEN 0 AND 10`能够返回`ROWNUM`在1到10之间的行,而`BETWEEN 2 AND 10`则会跳过`ROWNUM=1`的行,导致无法返回任何结果。 4. 如果表中的主键是按照升序插入的,且...

    ORACLE数据库中ROWNUM用法详解

    4. **使用BETWEEN操作符**:`WHERE ROWNUM BETWEEN 1 AND 10`会返回前10条记录,而`WHERE ROWNUM BETWEEN 2 AND 10`则无法返回任何记录,因为ROWNUM始终从1开始,第一条记录会被排除,而第二条记录的ROWNUM仍然是1,...

    Oracle--ROWNUM.rar_oracle

    本篇将深入探讨`ROWNUM`的使用技巧及其在实际操作中的应用。 首先,`ROWNUM`是一个内置的伪列,它会在查询结果集产生时自动为每一行分配一个唯一的整数,从1开始递增。这个序列号并不存储在表中,而是在执行SQL查询...

    oracle rownum 使用技术.pdf

    ### Oracle ROWNUM 使用技术详解 #### 一、ROWNUM简介与特性 ROWNUM是Oracle数据库中的一个特殊列,用于为查询结果集中的每一行分配一个唯一的序号。这一功能非常强大,尤其在处理诸如“获取前N条记录”或“实现...

    pg与oracle语法差异

    - **Oracle**: 使用 `rownum` 来获取结果集中行的编号。 - **PostgreSQL**: 使用 `LIMIT` 和 `OFFSET` 关键字来实现类似的功能。 #### 十、临时表 - **Oracle**: 创建的临时表在不同会话之间共享定义,但数据隔离。...

    oracle中rownum的用法及解说

    ### Oracle中的ROWNUM使用详解 在Oracle数据库中,`ROWNUM`是一个非常有用的伪列,它可以帮助用户在查询结果集中为每一行分配一个唯一的行号。`ROWNUM`的值从1开始,并随着行的增加而递增。下面将详细介绍`ROWNUM`...

Global site tag (gtag.js) - Google Analytics