Oracle数据库中,一个表有两个字段,所有数量(allnum),成功数量(sucessnum),都是long类型的
select allnum,sucessnum from mytabl;现在想在查询处增加一列:成功率(用百分比,小数点保留两位数字)select allnum,sucessnum,sucessnum/allnum from mytabl; 这样不能实现我想要的效果
select allnum,sucessnum from mytabl;现在想在查询处增加一列:成功率(用百分比,小数点保留两位数字)select allnum,sucessnum,sucessnum/allnum from mytabl; 这样不能实现我想要的效果
round(sucessnum*100/allnum,2)||'%' as 成功率
from mytabl;
select allnum,sucessnum,to_char(sucessnum/allnum,'99D99')||'%' from mytabl;试试看
SQL> select * from t3; ALLNUM SUCESSNUM
---------- ----------
88 43
53 20
57 23
76 21SQL> select allnum,SUCESSNUM,round((SUCESSNUM/allnum)*100,2)||'%' percent from t3; ALLNUM SUCESSNUM PERCENT
---------- ---------- -----------------------------------------
88 43 48.86%
53 20 37.74%
57 23 40.35%
76 21 27.63%SQL>
方法二:select allnum,SUCESSNUM,round((SUCESSNUM/allnum)*100,2)||'%' 成功率 from mytabl;两种方法均可,我已测试过
---------- ----------
88 43
53 20
57 23
76 21SQL> select allnum,SUCESSNUM,round((SUCESSNUM/allnum)*100,2)||'%' percent from t3; ALLNUM SUCESSNUM PERCENT
---------- ---------- -----------------------------------------
88 43 48.86%
53 20 37.74%
57 23 40.35%
76 21 27.63%SQL> SQL> select * from t3; ALLNUM SUCESSNUM
---------- ----------
88 43
53 20
57 23
76 21SQL> select allnum,SUCESSNUM,round((SUCESSNUM/allnum)*100,2)||'%' percent from t3; ALLNUM SUCESSNUM PERCENT
---------- ---------- -----------------------------------------
88 43 48.86%
53 20 37.74%
57 23 40.35%
76 21 27.63%SQL> SQL> select * from t3; ALLNUM SUCESSNUM
---------- ----------
88 43
53 20
57 23
76 21SQL> select allnum,SUCESSNUM,round((SUCESSNUM/allnum)*100,2)||'%' percent from t3; ALLNUM SUCESSNUM PERCENT
---------- ---------- -----------------------------------------
88 43 48.86%
53 20 37.74%
57 23 40.35%
76 21 27.63%SQL>
select allnum,SUCESSNUM,decode(allnum 0,0,round((SUCESSNUM/allnum)*100,2)||'%') percent from t3;