Учитывая, что входные строки всегда будут иметь начальные числа и точку, можно извлечь дробные числа с помощью regexp_substr
. regexp_replace
также может быть использовано.
Вот несколько примеров для regexp_substr
. Они работают путем включения группы захвата, нацеленной на нужные данные, и аргумента subexpression
(последний аргумент в regexp_substr
):
SELECT REGEXP_SUBSTR('12.13 this is a test','^[0-9]{1,}[.]{1}([0-9]{1,})',1,1,NULL,1) AS FRACTIONAL FROM DUAL;
Результат:
FRACTIONAL
13
1 row selected.
SELECT REGEXP_SUBSTR('1.1 this is a test','^[0-9]{1,}[.]{1}([0-9]{1,})',1,1,NULL,1) AS FRACTIONAL FROM DUAL;
Результат:
FRACTIONAL
1
1 row selected.
SELECT REGEXP_SUBSTR('99.99 this is a test','^[0-9]{1,}[.]{1}([0-9]{1,})',1,1,NULL,1) AS FRACTIONAL FROM DUAL;
Результат:
FRACTIONAL
99
1 row selected.