意外的空查询结果

and*_*inn 1 sql oracle

好的,这是一个愚蠢的....

Select * from <table> where <col1> is null and <col2> = 1;
Run Code Online (Sandbox Code Playgroud)

<col1>是varchar2(5byte)没有defalut值 <col2>是默认值-1

为什么我的上述查询不会返回任何记录?我知道查询应该返回一个结果集,但我什么都没得到.

如果我做:

Select * from <table> where <col1> is null; 
Run Code Online (Sandbox Code Playgroud)

我收到了127531条记录

如果我做:

Select * from <table> where <col2> = 1; 
Run Code Online (Sandbox Code Playgroud)

我收到了86342条记录

Oracle是否以奇怪的方式处理空值?我是MSSQL有点人.

Tho*_*ten 7

从你写的东西我不相信查询应该返回一个记录..在我看来,你没有任何行满足这两个条件.

也许你想要OR两个条件(获得满足两个条件中的任何一个的记录)?