Вычеркнуть числа с пятью нулями просто с regexp_replace()
.Но, похоже, нам также нужно привести в порядок запятые.В этом решении есть еще regexp_replace()
для перехвата ,,
, когда вырезанное число находится внутри строки, и простое trim()
для того, когда число является первым или последним в строке:
with cte as (
select '1,2,200000,2345323,1200000' as str from dual union all
select '546^515,400000,657180,3' as str from dual union all
select '546^515,400000,1200000,657180,3' as str from dual union all
select '54000000,400000,1200000,657180,300000000' as str from dual
)
select trim(both ',' from regexp_replace(regexp_replace(str, '([0-9]+)00000', null),',(,+)',',')) as new_str
from cte
/