Oracle数据库之[Oracle] “表中有数据,但select count(*)的结果为0”问题的解决办法
小标 2018-08-20 来源 : 阅读 5734 评论 0

摘要:本文主要向大家介绍了Oracle数据库之[Oracle] “表中有数据,但select count(*)的结果为0”问题的解决办法,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

本文主要向大家介绍了Oracle数据库之[Oracle] “表中有数据,但select count(*)的结果为0”问题的解决办法,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

一、问题
今天遇到了一个神奇的问题——表中有数据,但select count(*)的结果为0。

这个问题最初的表现形式是“查询报表没有分页”。
最开始还以为是java端的问题。后来才发现,查分页的sql语句是返回0的。
随后将该sql语句放到PLSQL里运行,发现也是返回0条。

数据库版本是 Oracle 11.1.0.6。

试了好几个搜索引擎,但网上找不到类似情况。

二、山穷水尽疑无路
首先确认一下该表是否有数据——

select * from mytable
可看到该表(mytable)确实有数据。

随后查询条数,发现该语句返回0条。

select count(*) from mytable
更换count方式,还是返回0条。

select count(1) from mytable
select count(id) from mytable
三、柳暗花明又一村
随后发现加上条件时,能查到条数。

select count(*) from mytable where id<10
难道要写上where才行?
那我要查全表记录数该怎么办?

于是尝试了这种写法做恒真判断,但发现还是返回0条——

select count(*) from mytable where 1=1
看来是被数据库自动优化查询语句了。

又想了一下,干脆改为主键非空判断吧,这个也是恒真的。

select count(*) from mytable where not id is null
这个能正常的查到记录数。    

本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 4 不喜欢 | 1
看完这篇文章有何感觉?已经有5人表态,80%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved