oracle 查询 空值 注意不是 null

为什么我用下面两个语句都查不出数据:selectcount(*)fromAwherenvl(b,'')=''和selectcount(*)fromAwherenvl(b,... 为什么我用下面两个语句都查不出数据 :
select count(*) from A where nvl(b,'') = ''
和select count(*) from A where nvl(b,'') <> ''

我的表A里有大量数据,为什么用上面两个都查不到呢
展开
 我来答
游戏放松小助手
高粉答主

2020-03-26 · 我是游戏小达人,乐于助人
游戏放松小助手
采纳数:32 获赞数:76849

向TA提问 私信TA
展开全部

1、首先查询业主表中的地址id,不重复显示。

2、然后对t_account标按使用量进行升序排序,默认是升序,asc可以省略。

3、接着对t_account表按使用量进行降序排序。

4、然后通过rownum伪列可以限制查询结果集中返回的行数。

5、最后空值查询——①查询t_pricetable表中maxnum为空的记录;②查询t_pricetable表中maxnum不为空的记录。

wangzhiqing999
推荐于2017-09-15 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3226万
展开全部
oracle中varchar,varchar2,nvarchar,nvarchar2的区别

1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;
2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;

VARCHAR2把空串等同于null处理

因此, 你那里的
select count(*) from A where nvl(b,'') = ''
和select count(*) from A where nvl(b,'') <> ''

被 等同为
select count(*) from A where nvl(b,null) = null
和select count(*) from A where nvl(b,null) <> null

所以查询不出数据。

参考资料: http://apps.hi.baidu.com/share/detail/18768651

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sxdtgsh
2011-10-12 · TA获得超过2221个赞
知道小有建树答主
回答量:913
采纳率:75%
帮助的人:794万
展开全部
oracle中没有空字符串的,只有null,而且判断是否非空只能用is null或is not null,与null的运算,结果仍然是null。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gxlu_edge
2011-10-12 · TA获得超过730个赞
知道小有建树答主
回答量:420
采纳率:0%
帮助的人:327万
展开全部
‘’在oralce 就是null值,
你查询下 select count(*) from A where b is not null and trim(b) is null 看看
如果不行,看看b里是否有全角的空格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
futaohuan
2011-10-12
知道答主
回答量:50
采纳率:0%
帮助的人:15万
展开全部
select count(*) from A where nvl(b,' ') = ' '
select count(*) from A where b is null
select count(*) from A where b is not null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式