Oracle 查询语句使用不等于(<>或者!=)会过滤空值的解决方案
在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
值。
评论已关闭