如何通过一次测试检查NULL/空/空格值?

2022-03-04 00:00:00 sql oracle oracle10g

我想编写一个SELECT语句,该语句只使用一个测试返回没有值的列(NULL、EMPTY或所有空格)。

我认为这会起作用:

SELECT column_name from table_name WHERE column_name NOT LIKE '%_%';

但这不适用于空值。

我当然可以添加

OR column_name IS NULL

而且它可以工作,但我想要一种使用单个测试的方法。


解决方案

功能上,您应该能够使用

SELECT column_name
  FROM table_name
 WHERE TRIM(column_name) IS NULL
问题是不会使用COLUMN_NAME上的索引。如果TRIM(COLUMN_NAME)是选择性条件,则需要在TRIM(COLUMN_NAME)上具有基于函数的索引。

相关文章