我有一个包含以下数据的表:
Value_ID VALUE CODE HR DATE TYPE
1 0 REG 01:00AM 1/1/18 HI
2 4 REG 01:00AM 1/1/18 BYE
3 null REG 02:00AM 1/1/18 HELLO
4 REG 03:00AM 1/1/18 HI
5 7 REG 04:00AM 1/1/18 BYE
我试图排除任何空白(“或”)的值;但是,当我尝试使用NOT IN子句或NOT EQUAL TO(<>)比较时,我返回0项。我正在使用的查询如下:
select *
from value
WHERE value is not NULL
AND value <> ' ' AND value
<>'';
我也尝试过:
select *
from value
where value is not null
and valuenot IN ('', ' ');
当我这样做时,将返回以下内容:
Value_ID VALUE CODE HR DATE TYPE
Oracle是否出于某种原因不喜欢该符号?
谢谢。
答案 0 :(得分:3)
这可以做到:
select *
from tablename
WHERE LENGTH(TRIM(value)) > 0
我在另一个可能对您有所帮助的问题中找到了一个非常有趣的答案:
empty string in oracle
答案 1 :(得分:2)
您可以查询
SELECT *
FROM your_table
WHERE TRIM(value) IS NOT NULL;
因为空的TRIM在Oracle中导致NULL。
致谢