字段  A      B      C     D     E
-----------------------------------
      A      5      b     1     4
      A      5      e     2     2
      A      5      q     1     1
      B      10     o     2     8
      B      10     t     3     5
      E      6      i     2     4
      E      6      m     3     1
      D      3      w     1     2
      D      3      l     2     0
我得表结构 是这样得 本来是4列   E列得递减 我是通过MODEL DIMENSION BY 函数实现得  但是 我现在像要显示得是这样     
字段  A      B      C     D     E
-----------------------------------
      A      5      b     1     0
      A      5      e     2     0
      A      5      q     1     1
      B      10     o     2     0
      B      10     t     3     5
      E      6      i     2     0
      E      6      m     3     1
      D      3      w     1     0
      D      3      l     2     0
这样 用很么函数能实现啊!帮帮忙

解决方案 »

  1.   

    A 5 b 1 4
      A 5 e 2 2
      A 5 q 1 1
     B 10 o 2 8
      B 10 t 3 5
    分组后取得下一条记录的E,即LAG(E),得到
    A B C D E LAG(E)
    A 5 b 1 4  2
    A 5 e 2 2 1
    A 5 q 1 1 null
    B 10 o 2 8  5
    B 10 t 3 5  null
    再判断LAG(E)不为空E就为0,
      

  2.   

    你没有明白我的意思,我现在机器上没有ORACLE ,我写个大概给你
    SELECT  A,B,C,D,NVL2(F,E,0)
    FROM  (
    select A,B,C,D,E,lag(E)over(PARTITION BY A ORDER BY A)  AS F
    from tab
    )