`

oracle 利用 lead 、lag 查询已有记录的下一条、上一条记录

阅读更多


 表的结构如下:

 



如要查询Staffno是6-1102的前一条记录

 

select * from staff where staff_no=(select c.p from (select staff_no,lag(staff_no,1,0)  over (order by staff_no) as p from staff) c where c.staff_no='6-1102')

结果:

STAFF_NO   STAFF_NAME           SEX 

---------- -------------------- --- -

6-1076     梁柄聪               男                                                                                                                                                                                                                                                                           


1 rows selected

 

如要查询其后一条记录

 

select * from staff where staff_no=(select c.n from (select staff_no,lead(staff_no,1,0)  over (order by staff_no) as n from staff) c where c.staff_no='6-1102')

 

结果:

 

STAFF_NO   STAFF_NAME           SEX 

---------- -------------------- --- -

6-1103     余志伟               男                                                                                                                    


1 rows selected




 查询第一条

 select * from (select s.*,row_number()over(order by staff_no ) rn from staff s) where rn=1 ;

 查询最后一条

 select * from (select s.*,row_number()over(order by staff_no desc ) rn from staff s) where rn=1 ;

  • 大小: 17.1 KB
2
2
分享到:
评论
2 楼 luoyonghui55 2014-08-12  
你这个要是能再写一些注释说明就更好了。
1 楼 yybb2277 2011-11-29  
太强了,谢谢

相关推荐

    oracle求同比,环比函数(LAG与LEAD)的详解

    Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。 代码如下:CREATE TABLE salaryByMonth( employeeNo varchar2(20)...

    oracle查询相邻上下行值

    本篇内容主要介绍了两种不同的方法来实现Oracle数据库中查询相邻行的方法:一种是通过自连接的方式,另一种则是利用Oracle 11g引入的`LAG()`和`LEAD()`窗口函数。 ##### 方法一:自连接方式 这种方法的核心思想是...

    oracle-lag()和lead().doc

    oracle-lag()和lead().doc

    lead-lag-regress.rar_lead-lag-regress_滞后相关_超前滞后_超前滞后matlab_超前滞后相

    原创的matlab小程序,用于计算超前滞后相关,自带检验线,月资料和年资料都可以。

    oracle常用经典sql查询.rar

    了解SQL的基本语法是掌握Oracle SQL查询的前提,包括SELECT语句用于查询数据,INSERT语句用于插入新记录,UPDATE语句用于修改已有记录,而DELETE语句则用于删除数据。 在Oracle SQL查询中,有几种常见的高级查询...

    oracle常用查询

    11. **分析函数**:如RANK()、DENSE_RANK()、ROW_NUMBER()用于排序并分配行号,LEAD()和LAG()获取当前行的前一行或后一行的值。 12. **窗口函数**:如OVER()子句配合SUM()、AVG()等函数在数据窗口内进行计算,提供...

    oracle 查询部分ppt

    例如,RANK()、ROW_NUMBER()、DENSE_RANK()用于排序,LEAD()和LAG()用于访问当前行的前一行或后一行数据,而OVER()子句定义了窗口范围。 PPT可能还会涉及索引(Index)的使用和优化。索引是提高查询速度的关键,...

    oracle关于日期的查询语句

    Oracle的分析函数如LEAD、LAG和FIRST_VALUE、LAST_VALUE,可以用于处理时间序列数据,如预测未来的日期或查看过去的历史值。 5. 时间间隔: Oracle支持INTERVAL数据类型,用于表示时间间隔。例如,INTERVAL '1' DAY...

    Oracle查询优化改写-技巧与案例

    本书“Oracle查询优化改写-技巧与案例2.0”聚焦于这一主题,旨在为数据库管理员(DBA)和开发人员提供实用的指导。 1. **查询优化基础**:优化SQL查询始于理解Oracle的执行计划。书中可能涵盖了如何使用`EXPLAIN PLAN...

    oracle lag 实现同一字段的前N行的数据和后N行的值

    根据提供的文件信息,本文将详细解释如何在Oracle数据库中使用`LAG`函数来获取同一字段的前N行数据,以及如何使用`LEAD`函数获取后N行的值。 ### Oracle LAG 和 LEAD 函数简介 #### 1. LAG 函数 `LAG`函数是Oracle...

    oracle高级查询技巧

    例如,RANK()、ROW_NUMBER()和DENSE_RANK()用于排序,LAG()和LEAD()用于访问前/后行的值,AVG()、SUM()等在窗口内的聚合等。 六、集合函数与分析函数结合 通过结合窗口函数和聚合函数,可以实现更复杂的分析,如...

    Oracle计算连续天数,计算连续时间,Oracle连续天数统计

    另一种方法是利用窗口函数,如`LAG`和`LEAD`。这些函数可以查看当前行的前一行或后一行数据,非常适合检测连续性。例如: ```sql WITH consecutive_dates AS ( SELECT employee_id, attendance_date, LAG...

    Oracle SQL:经典查询练手

    Oracle SQL是一种强大的数据库查询语言,尤其在处理结构化数据时,它的功能和灵活性深受数据库管理员和开发人员的喜爱。本主题将深入探讨Oracle SQL中的经典查询技巧,帮助你提升数据库操作的效率。 首先,理解SQL...

    Lead Lag Exhaust Fan Control.rar

    本资料重点讲解了如何利用AB PLC实现引导滞后排风扇的控制系统,该系统常用于保持室内空气质量,例如在制造工厂或实验室环境中。 一、AB PLC基础 AB PLC是一种数字操作电子系统,用于监控输入设备,并根据预设程序...

    delay_early_gate.rar_FPGA delay_digital lead lag_syn_超前滞后同步_超前

    本压缩包文件"delay_early_gate.rar"涉及的核心技术是全数字超前—滞后门(Digital Lead-Lag Gate)的符号同步算法在FPGA上的实现,主要通过Verilog硬件描述语言进行编程。 超前—滞后同步(Lead-Lag ...

    oracle SQL语法大全

    Oracle SQL语法大全是一个非常重要的资源,对于学习和掌握Oracle数据库管理系统的查询语言至关重要。SQL(Structured Query Language)是用于管理关系数据库的标准语言,而在Oracle环境中,它有一些独特的特性和扩展...

    Oracle官方SQL帮助手册

    7. 分析函数:Oracle提供了一系列分析函数,如RANK(), DENSE_RANK(), ROW_NUMBER(), LAG(), LEAD(), NTILE()等,这些函数在处理分组后的排序和计算时非常有用。 8. 视图:视图是虚拟表,可以简化复杂查询或提供安全...

    Oracle数据库速查知识文档,oracle使用手册

    Oracle的高级查询涉及到联接(JOIN)、子查询、集合操作(UNION、INTERSECT、EXCEPT)以及窗口函数(如`RANK`、`ROW_NUMBER`、`LEAD`、`LAG`)。这些技术允许对大数据集进行复杂分析,提取有价值的信息。 PL/SQL...

    Oracle Press - Oracle Database 11g SQL

    《Oracle Press - Oracle Database 11g SQL》是专门针对Oracle数据库系统中SQL语言的一本详细教程,适合数据库管理员(DBA)、开发人员以及对Oracle SQL感兴趣的初学者学习。本书全面覆盖了Oracle 11g版本中的SQL...

Global site tag (gtag.js) - Google Analytics