Предполагая, что ваше первое значение должно иметь только один начальный ноль, вы можете преобразовать исходную строку в число, разделить на 100, а затем отформатировать ее обратно в строку, используя модель, соответствующую вашему желаемому выводу, например:
to_char(to_number(orig_str)/100, '9990.00') as new_str
Демонстрация:
-- CTE for sample data
with your_table(orig_str) as (
select 000025 from dual
union all select 002340 from dual
union all select 239044 from dual
union all select 000305 from dual
union all select 000100 from dual
)
-- query
select orig_str,
to_char(to_number(orig_str)/100, '9990.00') as new_str
from your_table;
ORIG_STR NEW_STR
---------- --------
25 0.25
2340 23.40
239044 2390.44
305 3.05
100 1.00
Если вы хотите выравнивание, как показано в вопросе, со всеми значениями по левому краю, а не по десятичной запятой, вы можете добавить модификатор формата FM
, который подавляет пробелы:
select orig_str,
to_char(to_number(orig_str)/100, 'FM9990.00') as new_str
from your_table;
ORIG_STR NEW_STR
---------- --------
25 0.25
2340 23.40
239044 2390.44
305 3.05
100 1.00