将分数转换为十进制

时间:2013-08-09 18:46:05

标签: sql oracle

使用10g。

我正在编写一个查询来对列表进行排序,排序是列表的一个重要方面。

我已经从混合数字中分离了这一部分。

我的数据来自分数形式。 (3 / 4,5 / 8,1 / 2)

我需要将它们转换为十进制才能与它们“排序”。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果输入分数如3/4,5 / 8等,这将会严重爆炸,但这里有:

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

逻辑基本上是“在'/'之前获取所有内容并将其转换为数字,然后在'/'转换为数字后将所有内容除以”。