簡體   English   中英

在oracle sql中比較當前行和上一個

[英]comparing current row and previous in oracle sql

我需要比較當前行和上一行,並基於比較需要導出列值。 目前,我要遵循的方法是制作兩個不同的記錄集,然后使用等級函數,然后通過加入等級函數來實現這一目標。 但是,這似乎是乏味的方法,是否有更好的方法可以實現此目的。 我目前正在寫類似下面的查詢:

    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

使用LAG(value_expr) OVER (ORDER BY rank_col) )從上一行(由rank_col定義的順序LAG(value_expr) OVER (ORDER BY rank_col)中檢索值(value_expr),請參見http://oracle-base.com/articles/misc/lag-lead-analytic-functions .PHP

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM