我在数据库里要执行统计查询select sum(cls+zr+yj-zc-xs-st) from yz_scjl,但是操作数数据类型 varchar 对于 sum 运算符无效。就是说sum括号里的必须是整型,不能是String类型。我把javaBean里的都改成了int,但是之前用户添加的都还是String类型,并且很无语的是用户添加的不仅仅限于数字,还包括“120头”,“256个”“无”这样的数据!没办法直接把表字段类型改成整型!让清空数据啊!可是数据是万万不能删除的!用户线上随时在用!该怎么办?其中还有些是空字段!

解决方案 »

  1.   

    转换啊 转换成int i = Integer.parseInt(s)
      

  2.   

    select sum(cls+zr+yj-zc-xs-st) from yz_scjl啊!里面必须要是int才能执行查询!
      

  3.   

    什么数据库  oracle可以用 to_number()
      

  4.   

    如果数据库保存的是那样的字符串,可以考虑检索出来以后在java端提取出数值进行统计
    不知道你的数据库是什么的?如果是oracle10以后的版本,可以考虑检索的时候用这则替换掉非数字的字符,然后都转为数值类型相加
      

  5.   

    将字符串转为整数int有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异。
      

  6.   

    在前台对输入的内容进行验证判断啊,防止不合格的数据插入。
    在数据库中把那个字段的类型设置成varchar类型的。
    这样以后就方便了啊。
      

  7.   

    不好意思说错了,是把那个字段的类型设置成int类型的。
      

  8.   

    我用的是sql Service 2005  ,主要是想把数据库字段类型改掉,但是里面包括很多不能删除的数据,不知道咋办了!要是一个个改,把多余的文字去掉,然后再强制类型转换?可行吗?关键数据不能丢了!
      

  9.   

    你把数据库字段类型改了,数据不改能行吗?肯定是先update你的表,把数据都整理好了,然后再alter table把字段类型改掉。
      

  10.   

    .title_header{
    margin-left:7px;
    padding:0;
    text-align:left;
    height:40px;
    width:815px;
    background-image:url(../images/nyxqtxx_03.gif)
    }
      

  11.   

    select sum(str+0) from tab
    加上一个数字就可以了