DIV_NUMB
值必须为全新,它们与您想要获得的没有任何共同点。
如果您知道您想从2000开始,那么
SQL> select 1000 + 1000 * row_number() over (order by t.datum, t.div_numb) div_numb,
2 t.datum
3 from test t
4 order by t.datum, t.div_numb;
DIV_NUMB DATUM
---------- ----------
2000 01.04.2020
3000 01.04.2020
4000 01.04.2020
5000 08.04.2020
SQL>
如果必须计算起点,那么它将变得更加复杂,例如
SQL> with mdn (div_numb, gap) as
2 (select (trunc(min(div_numb) / 1000) * 1000) - 1000,
3 1000
4 from test)
5 select
6 (m.div_numb * row_number() over (order by t.datum, t.div_numb)) + m.gap div_Numb,
7 t.datum
8 from mdn m cross join test t;
DIV_NUMB DATUM
---------- ----------
2000 01.04.2020
3000 01.04.2020
4000 01.04.2020
5000 08.04.2020
SQL>