Oracle没有结果,小查询

Sol*_*ke1 1 sql oracle isnull

我遇到一些sql的问题.当我运行以下查询时:

Select * from teleapp;
Run Code Online (Sandbox Code Playgroud)

我得到了很多结果.结果包括一个列(称为cashwithappyn),其中包含TONS为空或空数据单元格.(它们看起来很空,不要说空)

列信息是:

ColumnName      ID          Null? Data Type             Histogram   Num Distinct  Num Nulls    Density
CASHWITHAPPYN   54          Y     VARCHAR2(1 Byte)      Frequency   2             56895         0               
Run Code Online (Sandbox Code Playgroud)

当我尝试运行以下查询时:

Select * from teleapp where cashwithappyn = null;
Run Code Online (Sandbox Code Playgroud)

要么

Select * from teleapp where cashwithappyn = '';
Run Code Online (Sandbox Code Playgroud)

要么

Select * from teleapp where cashwithappyn not like '';
Run Code Online (Sandbox Code Playgroud)

要么

Select * from teleapp where cashwithappyn not in ('Y','N');
Run Code Online (Sandbox Code Playgroud)

或者任何类型的组合,我似乎无法在cashwithappyn中获得所有的行.

有任何想法吗?请帮助,这是我被指派做的项目的最后一部分,我只需要弄明白这一点.

谢谢.

hol*_*hol 6

也许该列包含空格.在那种情况下你可以做到

WHERE TRIM(CASHWITHAPYYN) IS NULL
Run Code Online (Sandbox Code Playgroud)

TRIM 删除之前和之后的所有空白,如果没有剩下任何值,则该值变为 NULL

例如

TRIM(' ') IS NULL -- one blank removed = true
TRIM(NULL)  IS NULL -- true
Run Code Online (Sandbox Code Playgroud)

NULL无法与之相比,= NULL但必须措辞IS NULL.NULL这不是一个价值,这就是比较永远不会起作用的原因.


Jes*_*sse 5

您需要使用IS NULL

Select * from teleapp where cashwithappyn is null;
Run Code Online (Sandbox Code Playgroud)