我有几张空表TEST
当我 SELECT COUNT(*) FROM TEST 的时候得到值为0,
可是当TEST与其他一些表关联查询的时候,得到的结果集为空,可是为什么关联的语句的COUNT(*) 也为空呢,按说应该是0呀,我用NVL处理也是没有结果,请问怎么样才能得到是0的结果呢

解决方案 »

  1.   

    刚刚试过了  是0啊  
    把你sql贴出来看看
      

  2.   

    是不是你的客户端设置了什么东西你查这条语句得到的结果是不是0select count(null) from dual 
      

  3.   

    我的语句是select nvl(count(operator_work_no),0) from bu_malf_status_info where operator_work_no is not null and 
                      to_char(operator_date,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')  
                      and status=108353467 and parent_id in( 
                      select id from bu_malfunction_temp where  malf_type=160953413)                   
                      group by operator_work_no,里面的字段大家不理解,我的问题是有了GROUP BY,最好的值就为空,去掉GROUP BY 就有0这个值
      

  4.   

    是有这个问题。好像是ORACLE内部规定的。如果不存在记录集,使用GROUP BY就不返回。
      

  5.   

    目前没有什么好的解决办法 ,你可以先SUM 后 再套上一级COUNT 
      

  6.   

    打错了,是先group by 后再用一次COUNT(*)
      

  7.   

    我认为是这样的,count(*) 是可以包括空值的,但是count(字段)就不包含空值了