oracle 数据格式为百分比,咋样能参与计算

在oracle中,数据类型是varchar的,大批量的数据中会有20/30这样是数据,如何能让其参与计算,做sum。

第1个回答  2011-04-01
先根据“/”解析,
然后取出来“/”前半部分
to_number(nvl(substr(fieldName,0,instr(fieldName,'/')-1),0))
下面取出来“/”后半部分
to_number(nvl(substr(fieldName,instr(fieldName,'/'),length(fieldName)-fieldName,instr(fieldName,'/')),0))
就可以了本回答被提问者采纳
第2个回答  2020-06-24
很简单的,使用replace就好了,比如字段A为百分比格式(含%),replace(A,'%')就可以参与计算了,replace(A,'%')/100即将百分比换成小数形式
第3个回答  2011-03-29
用游标循环动态计算,应该可以
loop
...
execute immediate 'select ' || rec.exp|| ' from dual' into v;
sum:=sum+v;
end loop
但没试过,其他办法就不知道了
第4个回答  2011-03-29
表中有463214条记录,两个字段,分别为类型和名称,类型分1,2,3,现select * from 表名 sample(60) where 类型='1' union select * from追问

我想sum一个字段,但是这个字段是varchar类型的,其中可能会有20/30这样的数据,怎么处理,在线等,麻烦各位

第5个回答  2011-03-29
to_number 函数只能转换小数 为数值么,看能不能把分数计算为小数了,再导入么
相似回答