Oracle round varchar2列为2位小数

时间:2017-08-09 16:26:35

标签: sql database oracle rounding

我有一个varchar2列,我需要从中获取平均数。

因此,请使用下表,其中val是列varchar2(20):

 val
 5
 4.654645
 3.4534353

我尝试了以下内容:

select ROUND(AVG(TO_NUMBER(val)),2) as n from table

我得到的结果是1.9110E + 13

我想要的结果是一个四舍五入到小数点后的数字

提前感谢您提供任何帮助

2 个答案:

答案 0 :(得分:0)

也许吧。 。

select CAST(AVG(TO_NUMBER(val)) as decimal(20, 2)) as n
from table;

为什么要将数字存储为字符串?这似乎是abad的设计决定。

答案 1 :(得分:0)

所以以下内容对我有用:

select ROUND(AVG(CAST((val) as decimal(20, 2))),2) as n from table

感谢您的建议