2017-06-30 4 views
1

oracleフォームでNULL値を持つ列があれば、次の行の挿入方法。ここで、第4列NULL値でいずれかの列にoracleフォームのNULL値がある場合、次の行の挿入方法

empID city 
1001 NYC 
1002 DC 
1003 CA 
1004 NULL 
1005 LA 
1006 PL 

は、我々は次の値を挿入オラクルforms.Ifであり、それはバック4行目に戻す4行目にLAシフト& PL 5 row.Howにシフト手段挿入された行がOracleフォームに移行することはできますか?

答えて

1

あなたはlag(. . . ignore nulls)を使用してこの操作を行うことができます。

update t 
    set city = (select max(t2.city) keep (dense_rank first order by t2.empID desc) 
       from t t2 
       where t2.empID < t.empId 
       ) 
    where city is null; 
:あなたが実際に更新をしたい場合は

select empID, 
     coalesce(city, lag(city ignore nulls) over (order by empID)) as city 
from t; 

は、あなたが相関サブクエリを使用することができます

関連する問題