Oracle 查询问题

今天再写项目的时候碰到一个问题,感觉很奇怪。

情景是这样的

我的数据库中的CREDENTIALS_TYPE下有三种类型的值,身份证,公司,null,在我使用CREDENTIALS_TYPE!='公司'时,只显示CREDENTIALS_TYPE为身份证的值,为null的数据怎么也查不出来,

Oracle 查询问题_第1张图片
后面问过大神,他是这样说的:

使用 select * from bao_t_cust_info where CREDENTIALS_TYPE='null'

也是没有结果的。因为Oracle的算法中:

null=null是false                             null is null 是true,

select * from table where CREDENTIALS_TYPE!='公司' 

select * from table where CREDENTIALS_TYPE='身份证'  or CREDENTIALS_TYPE is null

select * from table where CREDENTIALS_TYPE='身份证' or CREDENTIALS_TYPE is null并不等价。


所以在查询有null值的数据时,尽量使用is null。感觉Oracle中还是有很多坑的啊。


   仅此做个笔记,以防后面再次碰到再掉坑里


你可能感兴趣的:(Oracle,函数,数据库,查询null)