比较oracle sql

时间:2015-05-04 11:08:13

标签: sql oracle

我需要比较当前行和上一行,并根据某些比较需要派生列值。目前apporach我正在制作两个不同的记录集,然后使用排名功能,然后通过加入排名功能,我能够解决这个问题。然而,这似乎是乏味的工作,是否有更好的方法来实现这一目标。我目前正在编写类似下面的查询: -

    select 
< comparing columns from two record sets and deriving column value> 
              (
        select(<some complex logic>, rank from a) rcdset, 
    (select <some complex logic>, rank +1 from a) rcdset2 where rcdset.rnk = rcdset1.rnk (+)

数据库 - Oracle 10g

1 个答案:

答案 0 :(得分:1)

使用LAG(value_expr) OVER (ORDER BY rank_col)检索上一行的值(value_expr)(由rank_col定义的顺序),请参阅http://oracle-base.com/articles/misc/lag-lead-analytic-functions.php