Этот postgres SQL делает свое дело:
select (parts[1] :: decimal) / (parts[2] :: decimal) as quotient
FROM (select regexp_split_to_array(number_value_in_string, '/') as parts from table) x
Вот тест этого кода:
select (parts[1] :: decimal) / (parts[2] :: decimal) as quotient
FROM (select regexp_split_to_array('1/200', '/') as parts) x
Вывод:
0.005
Обратите внимание, что вы бынеобходимо обернуть это в оператор case
для защиты от ошибок деления на ноль и / или ошибок массива вне границ и т. д., если столбец не содержит косую черту
Примечаниетакже, что вы можете сделать это без внутреннего выбора, но вам придется использовать regexp_split_to_array
дважды (один раз для каждой части), и вы, вероятно, понесете удар по производительности.Тем не менее, может быть проще встроить код и просто принять небольшую потерю производительности.