with pp as (select 120 as p from dual union all select 58 as p from dual union all select 1110 as p from dual union all select 320 as p from dual union all select 400002 as p from dual), pr as (select 0 as r,null as p,min(p) as p1 from pp union all select row_number() over(order by p),lead(p,1,null) over(order by p) from pp order by p) select * from pr order by r;
with pp as (select 120 as p from dual
union all select 58 as p from dual
union all select 1110 as p from dual
union all select 320 as p from dual
union all select 400002 as p from dual),
pr as (select 0 as r,null as p,min(p) as p1 from pp
union all select row_number() over(order by p),lead(p,1,null) over(order by p) from pp order by p)
select * from pr order by r;