Oracle 查询语句使用不等于(<>或者!=)会过滤空值的解决方案
warning:
这篇文章距离上次修改已过431天,其中的内容可能已经有所变动。
在Oracle中,如果你尝试使用不等于操作符(<>)或不等于操作符(!=)来筛选空值(NULL),你的查询将不会返回任何结果,因为在Oracle中,NULL 与任何值的比较都会返回 NULL(而不是 TRUE 或 FALSE)。
为了筛选空值或非空值,你应该使用 IS NULL 或 IS NOT NULL 条件。
例如,如果你想要选择列 column_name 中为空的所有行,你应该使用以下查询:
SELECT * FROM table_name WHERE column_name IS NULL;相反,如果你想要选择列 column_name 中不为空的所有行,你应该使用以下查询:
SELECT * FROM table_name WHERE column_name IS NOT NULL;请注意,在Oracle中,NVL 函数或 COALESCE 函数可以用来在查询中使用非 NULL 值替换 NULL,但它们不适用于筛选 NULL 值。
评论已关闭