`

ORACLE中SQL取最后一条记录的几种方法

阅读更多

  在ETL过程中,经常会碰到取结果集的最后或最前一条记录。如取活期存款的当前利率,开户金额,协定利率等。如果不用LOOKUP的方式,如通过游标取或者ETL工具LOOKUP组件什么的,在一条SQL里实现,目前实现有几种方法。

1.以时间或其他字段分组后在自连自己,这样不仅可以带出需要LOOKUP的字段,还可以带出其他需要的字段。

SELECT A.CDDPTY CDDPTY,A.CDCURR CDCURR,A.CDVLDT CDVLDT,
             A.CDYRAT CDYRAT
FROM DCPPDATA.TBBFMCDRT A INNER JOIN 
           (SELECT B.CDDPTY,B.CDCURR,MAX(B.CDVLDT) CDVLDT
             FROM DCPPDATA.TBBFMCDRT B
             GROUP BY B.CDDPTY, B.CDCURR) C 
             ON A.CDDPTY =C.CDDPTY
             AND A.CDCURR =C.CDCURR
             AND A.CDVLDT =C.CDVLDT

2.用ROW_NUMBER() OVER(ORDER BY filedName)

  

SELECT B.CDDPTY,B.CDCURR,
             ROW_NUMBER() OVER(ORDER BY B.CDVLDT DESC)
             FROM DCPPDATA.TBBFMCDRT B
             WHERE ROWNUM = 1

 

分享到:
评论

相关推荐

    Oracle中如何用一条SQL快速生成10万条测试数据

    本文将深入探讨如何利用一条SQL语句在Oracle中快速生成10万条测试数据,这对于数据库管理员和开发人员来说是一项极为实用的技能。 ### 核心知识点:使用SQL生成大量测试数据 #### 1. **理解ROWNUM和CONNECT BY ...

    Oracle 3种分页SQL方法比较

    本文将详细探讨三种常用的Oracle分页SQL方法:ROWNUM、ROWNUM结合子查询以及新引入的Oracle 12c的FETCH NEXT WITH OFFSET语法。这三种方法各有优缺点,适用于不同的场景。 1. ROWNUM方法: ROWNUM是Oracle中最基础...

    ORACLE SQL性能优化系列

    ORACLE 采用两种访问表中记录的方式:全表扫描和通过 ROWID 访问表。 1. 全表扫描 全表扫描就是顺序地访问表中每条记录。ORACLE 采用一次读入多个数据块(database block)的方式优化全表扫描。 2. 通过 ROWID ...

    Oracle多行记录合并

    本篇文章将详细介绍Oracle中实现多行记录合并的几种方法,包括使用SQL函数、集合操作以及自定义函数。 1. **使用SQL函数:** - **`LISTAGG()` 函数:** 这是Oracle 11g及以后版本引入的一个强大的聚合函数,专门...

    Oracle里抽取随机数的多种方法

    Oracle 中抽取随机数的多种方法 在 Oracle 中抽取随机数是许多应用场景中常见的问题,例如在某个活动中需要随机取出一些符合条件的用户,以颁发获奖通知或其它消息。本文将通过实例讲解如何抽取随机数的多种方法。 ...

    提高Oracle中SQL的执行效率

    本文将详细介绍几种有效的方法来提高Oracle中SQL的执行效率,包括选择合适的表名顺序、优化WHERE子句中的连接顺序、减少不必要的数据库访问等策略。 #### 1. 选择最有效率的表名顺序 在基于规则的优化器中,Oracle...

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    在Oracle数据库中,有时我们需要将多个字段值转换为单个字符串,或者将多行记录合并成一行,这在数据处理和报告生成时尤其常见。Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性...

    sql优化的几种方法

    为了优化性能,应将记录条数最少的表作为基础表放在最后。如果有三个或更多的表参与连接查询,则应考虑将交叉表(即被其他表引用的表)作为基础表。 #### 二、优化WHERE子句中的条件顺序 Oracle数据库在处理WHERE...

    ORACLE数据库中SQL优化解析.pdf

    在ORACLE数据库中,SQL优化是指通过一系列手段来提高SQL语句的执行速度,以减少对系统资源的消耗,提高整体性能。 首先,了解SQL语句的执行过程是进行优化的前提。SQL语句的执行主要分为四个阶段:语法阶段、优化...

    Oracle 多行记录合并_连接_聚合字符串的几种方法_oracle_脚本之家1

    Oracle数据库在处理多行记录合并、连接和聚合字符串时,有多种方法,下面将详细介绍其中的几种常见技术。 1. 被集合字段范围小且固定型 这种方法适用于字段值有限且已知的情况。通过使用`DECODE`函数,我们可以为每...

    Oracle查询重复数据与删除重复记录方法(txt)

    本文将详细介绍几种常用的查询和删除Oracle数据库中重复记录的方法。 #### 一、查询重复数据 1. **使用ROWID** ROWID是Oracle提供的一种特殊数据类型,它表示表中行的物理地址。通过ROWID可以快速定位到表中的某...

    oracle分页查询sql

    这种方法告诉Oracle优先处理前面的几条记录,适用于那些只需要快速获取分页查询结果的应用场景。 #### 七、总结 通过以上分析可以看出,在Oracle中实现高效的分页查询需要综合考虑查询结构、索引使用以及查询优化...

    oracle中如何删除重复的记录

    要删除Oracle数据库表中的重复记录,有几种方法可以采用: ##### 方法一:使用子查询与DELETE语句 这种方法适用于只需要删除重复记录中的某些行的情况。步骤如下: 1. **找出重复的记录**:首先,我们需要找到...

    oracle sql 调优,全面

    这意味着当执行一条与之前相同的SQL语句时,Oracle可以直接从缓存中获取结果,从而大大减少了执行时间。然而,Oracle只会缓存最近经常使用的SQL语句,并且如果缓存区已满,旧的SQL语句可能会被清除以腾出空间给新的...

    Oracle SQL连接查询总结.docx

    交叉连接也称为笛卡尔积,它返回左表与右表中每一条记录的组合。如果没有WHERE子句来过滤结果,将会产生大量的无意义组合。 **语法示例:** ```sql SELECT * FROM TableA CROSS JOIN TableB; ``` **应用场景:** ...

    在SQL中删除重复记录多种方法

    本文将介绍几种有效的方法,以帮助你在遇到重复记录问题时能有效地清理数据。我们将以Oracle数据库为例,但这些方法在其他SQL数据库系统中也具有一定的通用性。 首先,让我们通过一个简单的例子来理解问题。假设...

    oracle删除重复数据的sql语句

    根据给定文件中的标题、描述、标签以及部分内容,本文将详细介绍在Oracle数据库中删除重复数据的几种方法。这些方法利用了ROWID、GROUP BY、DISTINCT等关键字来实现数据去重的功能。 ### 1. 使用ROWID进行去重 ...

Global site tag (gtag.js) - Google Analytics