对于数值,为0是,令其为 null 合理吗?(主要想实现报表不显示0)
---------------------------------------------------------------------
在客户端程序显示时,由于为0的数据特别多,所以客户要求不显示0,
所以,我想在数据库中实现,最简单的办法就是将为0的数据变成 null,
这样不用修改客户端的程序了。
我不知,我的想法是否合理,请教一下大家。

解决方案 »

  1.   

    select case aa when 0 then '' else aa end as aa from tb
      

  2.   


    select (case when 字段=0 then '' end) as 字段 from tb
      

  3.   


    --报表工具里可以设置的,我记得快逸报表的显示那里可以 if(value()==0,'',value()) 来设置。
      

  4.   

    select (case when a=0 then '' end) as a from tb
      

  5.   

    update table 
    set field=''
    where field=0;
      

  6.   

    不要乱改数据库数据,这样改来改去 最后你都不知道0代表什么 
    null代表什么
    ‘’代表什么了
    甚至原始数据是什么你都搞不清楚了。
      

  7.   

    将0改为NULL不合理.
    1.可能有的地方需要用0;
    2.NULL也会显示;
    3.不可以直接用 case when 0 else '' end,要考虑数据类型问题,除非在查询时,将数据变为字符串型的;
    4.如果要改变数据类型,而且不存在为0的问题,改成NULL与为0,都要用比较的方法,改不改都一样;
    5.最好在客户端程序上处理,直接将0显示为空白,这不是什么难事儿.
      

  8.   

    在报表生成端处理吧。如果让数据库中0变null可能会带来其他影响。
      

  9.   

     select 的时候 加个 case when
      

  10.   

    0和NULL是两个意思,最好不要混在一起。
      

  11.   

    0也是数值呀,如果这个0有意义就不建议处理为null