1
回答
oracle 判断某列是否为数字?

原项目中是 用java后台判断某列是否为数字,然后累加的,现改为在SQL语句中判断累加.

//原java部分代码 根据 状态,取不同的值进行统计
if (data.status().compareTo("50") >= 0) {
	dinghuoSum += data.dinghuo1().doubleValue();
}else {
	dinghuoSum += ("1".equals(data.getGoodsFlag()) ? data.getGds().doubleValue()
				: data.getDqGds().doubleValue());
	}
}else {
	dinghuoSum += data.getBill().doubleValue();
}

 //新修改的SQL语句
sum(
    case when h.network='Q' then h.gds  
         when substr(h.network,0,1) !='A'   and  to_number(h.status)  >=50   then h.dqbill 
         when substr(h.network,0,1) !='A'   and  to_number(h.status)  <50 and h.goods_flag='1'  then h.gds 
         when substr(h.network,0,1) !='A'   and to_number(h.status)   <50 and h.goods_flag!='1'  then h.dqbill
         when substr(h.network,0,1) ='A'    then h.dqbill
    end
) as gdsSize,

问题是 status 状态这个字段是VARCHAR2(2)型的,我怎么用来 和java中类似比较和 50 的大小呢,直接to_number会有问题(ORA-01722:invali number);

oracle怎么判断是否为数字..

举报
雨山
发帖于6年前 1回/2K+阅
顶部