最初のバージョンは、少し調整するだけで機能するはずです:
select A.*,
coalesce(V1, lag(V1 ignore nulls) over (order by data)) V2
from Tab1 A;
微調整は、partition by v1
することです。 lag()
から 。 coalesce()
単純な表現が好きです。
同じ調整が2番目のバージョンでも機能するはずです。
lag()
が原因で、お使いのバージョンが機能しません 値は同じパーティションからのものである必要があります(またはnull
である必要があります )。 partition by v1
がある場合 、実際にはv1
現在の行と同じ値です。