AVG中的TO_NUMBER函数不起作用

时间:2019-09-24 13:32:32

标签: database oracle

我在使用TO_NUMBER ORACLE函数时遇到了麻烦。

查询

SELECT TO_NUMBER(varchar2_column)
FROM TABLE@ANOTHER_DB;

有效,但是如果我将TO_NUMBER放在AVG内,ORACLE将返回以下错误:

  

ORA-01722:无效的数字ORA-02063:ANOTHER_DB位置的前一行:0

查询如下:

SELECT AVG(TO_NUMBER(varchar2_column))
FROM TABLE@ANOTHER_DB;

有人可以帮我吗?预先感谢

1 个答案:

答案 0 :(得分:1)

您可以使用以下查询来获取数据的有效格式掩码:

SELECT AVG(TO_NUMBER(varchar2_column, 'FM'||REGEXP_REPLACE(varchar2_column,'\d','0'))) 
  FROM TABLE@ANOTHER_DB;

这将产生一个格式掩码,该掩码将所有数字字符替换为0,这应该适用于所有数据。