如何使用单个测试检查空值、空字符串和空格?

34 浏览
0 Comments

如何使用单个测试检查空值、空字符串和空格?

我希望编写一个SELECT语句,仅使用一个测试来返回没有值(null,空或所有空格)的列。

我认为这会起作用:

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

但这不适用于NULL值。

当然,我可以添加

OR column_name IS NULL

它将起作用,但我想使用一种只使用单个测试的方法。

admin 更改状态以发布 2023年5月22日
0
0 Comments

SELECT column_name from table_name
WHERE RTRIM(ISNULL(column_name, '')) LIKE ''

ISNULL(column_name, '')会在column_name为空时返回'',否则将返回column_name。

更新

在Oracle中,您可以使用NVL来实现相同的结果。

SELECT column_name from table_name
WHERE RTRIM(NVL(column_name, '')) LIKE ''

0
0 Comments

从功能上讲,您应该能够使用

SELECT column_name
  FROM table_name
 WHERE TRIM(column_name) IS NULL

问题在于,COLUMN_NAME上的索引不会被使用。如果这是一个选择性条件,您需要在TRIM(column_name)上建立基于函数的索引。

0