我的方案:
創(chuàng)新互聯專注于企業(yè)網絡營銷推廣、網站重做改版、江寧網站定制設計、自適應品牌網站建設、成都h5網站建設、購物商城網站建設、集團公司官網建設、成都外貿網站建設、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為江寧等各大城市提供網站開發(fā)制作服務。
1. 增加列:isdigit
2. 寫一個存儲過程或者plsql塊,循環(huán)每行,嘗試轉換為數字(to_number),如果轉換成功,則isdigit=1,如果觸發(fā)異常,則為0
3. 寫一個觸發(fā)器,對于新增數據,修改數據,則嘗試轉換為數字,如果轉換成功,則isdigit=1,如果觸發(fā)異常,則為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))
就可以了
把成績列的值加起來就是總成績,總成績/成績列數 就是平均成績了嘛,但在求成績列的時候要注意成績?yōu)?的是否去除,可用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;