对 varchar2 类型的字段进行 SUM 操作出现 ora-01722无效数字 错误怎么解决?

解决方案 »

  1.   

    无效数字肯定SUM不了,字符怎么相加?
      

  2.   


    你是不是用的类似sum(to_number('中国'))形式?
      

  3.   

    seelct a from t
    where trim(translate(a,'1234567890',' ')) is not null什么结果
      

  4.   


    噢 查询出来有些数据没有小数位数 可能是这个原因不能 SUM 
      

  5.   

    把没小数位的数据补上了 .00 显示的是 800.00 也还是SUM不了
      

  6.   

    数据里面有 不是 number 类型的,例如:
    123
    123.344
    中国
    23让人莞尔
    sgfg他这样的数据怎么sum啊
      

  7.   

    写一个函数
    CREATE OR REPLACE FUNCTION is_number (parmin VARCHAR2)
    2 RETURN NUMBER
    3 IS
    4 val NUMBER;
    5 BEGIN
    6 val := TO_NUMBER (NVL (parmin, 'a'));
    7 RETURN 1;
    8 EXCEPTION
    9 WHEN OTHERS
    10 THEN
    11 RETURN 0;
    12 END;
    然后就可以了~ 
    select sum(case when is_number(varch)=1 then varch else 0 end ) from tab