出厂水泥1 AC4354 29.5 180 244 合格 6.1 28.5
出厂水泥2 AC4355 29.5 180 245 合格 6.1 29.4
出厂水泥3 AD3458 30.1 216 277 合格 4.2 17.9
出厂水泥4 AC4313
出厂水泥5 AD3427 表结构如上,有很多的化验值,全是文本,因为在显示的时候,没有的必须为空,不能显示0出现,现在需要示一列的平均值,不知道怎么来写,如果实在不行,只能全部改为0,然后改前台为0不显示,可是太麻烦了,兄弟们给出个主意,俺也学习学习

解决方案 »

  1.   

    select isnull(avg(col),0) from tb
      

  2.   

    不是NULL值 全部默认的是''
      

  3.   

    重新补充一下,字段全部是VARCHAR型,必须转成数字型才能使用,但是还有很多的空值,不是NULL值
      

  4.   


    select avg(case when col='' then 0 else col end)  from '表名'
      

  5.   

    select avg(cast(case when col='' then 0 else col end) as int)  from '表名'