对于做项目来说,跟数据打交道,是不可避免的事情,接下来,我们就来看看,最近在优化项目视图所遇到的一些小问题。
最近项目新增了字段,旧数据的新字段肯定就是null值了,项目反应之前的项目通过视图查询不出来,我一打开视图,就只加上了这个
字段的关联关系,猜测很可能就是这个问题引起的。
首先,我们必须了解 null 值 在oracle 或是其他数据库中的意义,如下:
在数据库中,“null” 表示缺少值或未知值。它不同于空字符串或零,而是表示某个字段或列没有被赋予任何值。在 SQL 查询中,你可以使用 “IS NULL” 条件来检查字段是否为空。 “NULL” 在数据库设计和数据处理中扮演着重要的角色,因为它允许处理缺失值的情况,但也需要小心处理,以免造成意外的结果。
接下来,我们来看下效果
create table test_a
(
userid varchar2(10),
username varchar2(10)
);
create table test_b
(
userid varchar2(10),
username varchar2(10)
);
insert into test_a(userid,username) values (null,'aa');
insert into test_b(userid,username) values (null,'aa');
select * from test_a;
select * from test_b;
select a.* from test_a a
inner join test_b b on a.userid=b.userid
我们可以看到效果图,用两个null值字段关联的语句,并没有看到记录数,这也就证明了,null值关联,条件是不成立的,也就是所谓false。
所以我们应该如何处理一下,这里可能会有人问,如何解决这种问题呢,其实很简单,给个默认值就可以了。
毕竟本项目中的视图,还是要查询出数据的,我们做如下处理
select a.* from test_a a
inner join test_b b on nvl(a.userid,'0')=nvl(b.userid,'0')
这样,我们就可以顺利查询出数据,即便该字段是空的情况下,也可以查出数据。
这里主要是强调一下,大家更新项目的同时,要时刻注意这些细节,避免引起其他问题,导致增加不必要的工作量。
以上是自己的做为资深开发的一些个人经历,把这些经验分享给大家,希望以后大家在从事开发中,可以避免不必要的麻烦,跟浪费时间精力。
要是大家喜欢我的文章的话,可以在文章下留言或是联系我,共同进步,共同探讨开发的一些案例,促进彼此间的交流,分享一些日常的开发趣事。
非特殊说明,本博所有文章均为博主原创。
共有 0 条评论