2013-08-09 4 views
-2

Работает на 10g.Преобразование фракции в десятичный

Я пишу запрос для сортировки списка, и сортировка является важным аспектом списка.

Я уже выделил фракцию из смешанного числа.

У меня есть данные, которые входят в форму фракции. (3/4, 5/8, 1/2)

Мне нужно преобразовать их в десятичный, чтобы иметь возможность «заказывать» с ними.

Любая помощь будет оценена по достоинству.

+3

есть '3/4' строковое значение? –

+0

, если это строка, которую вы можете разделить на /, а затем бросить каждую сторону, тогда просто разделите слева налево ... –

+0

да, это строковое значение. – user3561134

ответ

1

Это взорвет плохо, если вход не фракция таких как 3/4, 5/8 и т.д., но здесь идет:

CAST(SUBSTR(theFraction, 1, INSTR(theFraction, '/')-1) AS NUMBER)/
CAST(SUBSTR(theFraction, INSTR(theFraction, '/')+1) AS NUMBER) 

Логика в основном «, прежде чем получить все '/' и преобразовать его в число, а затем разделить его на все после «/», преобразованного как число ».

Смежные вопросы