seelct a from t where trim(translate(a,'1234567890',' ')) is not null什么结果
噢 查询出来有些数据没有小数位数 可能是这个原因不能 SUM
把没小数位的数据补上了 .00 显示的是 800.00 也还是SUM不了
数据里面有 不是 number 类型的,例如: 123 123.344 中国 23让人莞尔 sgfg他这样的数据怎么sum啊
写一个函数 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
你是不是用的类似sum(to_number('中国'))形式?
where trim(translate(a,'1234567890',' ')) is not null什么结果
噢 查询出来有些数据没有小数位数 可能是这个原因不能 SUM
123
123.344
中国
23让人莞尔
sgfg他这样的数据怎么sum啊
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