我遇到一些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中获得所有的行.
有任何想法吗?请帮助,这是我被指派做的项目的最后一部分,我只需要弄明白这一点.
谢谢.
也许该列包含空格.在那种情况下你可以做到
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这不是一个价值,这就是比较永远不会起作用的原因.
您需要使用IS NULL
Select * from teleapp where cashwithappyn is null;
Run Code Online (Sandbox Code Playgroud)