十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
我的方案:
创新互联专注于企业网络营销推广、网站重做改版、江宁网站定制设计、自适应品牌网站建设、成都h5网站建设、购物商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为江宁等各大城市提供网站开发制作服务。
1. 增加列:isdigit
2. 写一个存储过程或者plsql块,循环每行,尝试转换为数字(to_number),如果转换成功,则isdigit=1,如果触发异常,则为0
3. 写一个触发器,对于新增数据,修改数据,则尝试转换为数字,如果转换成功,则isdigit=1,如果触发异常,则为0
4. 对数据进行计算时,增加条件 isdigit=1即可。
先根据“/”解析,
然后取出来“/”前半部分
to_number(nvl(substr(fieldName,0,instr(fieldName,'/')-1),0))
下面取出来“/”后半部分
to_number(nvl(substr(fieldName,instr(fieldName,'/'),length(fieldName)-fieldName,instr(fieldName,'/')),0))
就可以了
把成绩列的值加起来就是总成绩,总成绩/成绩列数 就是平均成绩了嘛,但在求成绩列的时候要注意成绩为0的是否去除,可用sign。
比如:score
sno yy yw
123 90 0
145 97 60
select sno,yy,yw,yy+yw,(yy+yw)/(sign(yy)+sign(yw)) from score;