选择不等于oracle中空字符串的字段

JYX*_*JYX 2 oracle

我正在尝试编写一个查询,该查询仅选择所有非空名称。以下两个查询均不返回结果:

 SELECT name FROM MyTable WHERE name != '';

 SELECT name FROM MyTable WHERE name = '';
Run Code Online (Sandbox Code Playgroud)

对于上下文,这两个查询都返回结果:

 SELECT name FROM MyTable WHERE name != 'a';

 SELECT name FROM MyTable WHERE name IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)

我在某处读到空字符串等效于oracle中的NULL,但我仍然不明白为什么这解释了这种行为。我需要同时支持SQL Server和Oracle,这就是为什么我不能仅仅依靠的原因WHERE name IS NOT NULL

谁能解释这里发生了什么?谢谢!

use*_*165 5

任何涉及NULL值的比较将始终返回FALSE。