关于一个COUNT(*) 的问题

a_king 2012-12-11 11:22:18
我有几张空表TEST
当我 SELECT COUNT(*) FROM TEST 的时候得到值为0,
可是当TEST与其他一些表关联查询的时候,得到的结果集为空,可是为什么关联的语句的COUNT(*) 也为空呢,按说应该是0呀,我用NVL处理也是没有结果,请问怎么样才能得到是0的结果呢
...全文
162 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadow1986a 2012-12-11
  • 打赏
  • 举报
回复
是有这个问题。好像是ORACLE内部规定的。如果不存在记录集,使用GROUP BY就不返回。
a_king 2012-12-11
  • 打赏
  • 举报
回复
我的语句是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这个值
izj 2012-12-11
  • 打赏
  • 举报
回复
是不是你的客户端设置了什么东西。。。 你查这条语句得到的结果是不是0 select count(null) from dual
qq53090120 2012-12-11
  • 打赏
  • 举报
回复
刚刚试过了 是0啊 把你sql贴出来看看
sindy1229 2012-12-11
  • 打赏
  • 举报
回复
把关联语句写出来先
善若止水 2012-12-11
  • 打赏
  • 举报
回复
我认为是这样的,count(*) 是可以包括空值的,但是count(字段)就不包含空值了
shadow1986a 2012-12-11
  • 打赏
  • 举报
回复
打错了,是先group by 后再用一次COUNT(*)
shadow1986a 2012-12-11
  • 打赏
  • 举报
回复
目前没有什么好的解决办法 ,你可以先SUM 后 再套上一级COUNT
a_king 2012-12-11
  • 打赏
  • 举报
回复
难道没有什么解决的办法吗

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧