with t (id, val) as (
select rownum, to_number (column_value)
from xmlTable ('1, 2, 0, 0, 0, 3, 0, 4, 0, 0, 0, 5')
) -- это тестовые данные для запроса ниже
select id, val oldval,
last_value (case
when val>0 then val
end ignore nulls) over (order by id) newval
from t
在一个问题中的给定数据上——无论如何,这个任务是无法解决的。
数据填写的顺序以后不会起任何作用,会丢失。也就是说,今天他是
[1, 2, 0...],明天 -[5, 1, 0...]。因此,要解决这个问题,至少需要多一列进行排序。
在下面的示例中,
id添加了一列以按以下方式排序:现在我们可以得到预期的结果: