NULL或BLANK字段(ORACLE)

我是Oracle的新手,所以我的问题可能听起来很愚蠢。我以前的帖子,但没有运气。
在表中,有一列是空白的,我试图找出列中的空白数。
我试过了:

SELECT COUNT (COL_NAME) FROM TABLE WHERE COL_NAME IS NULL
SELECT COUNT (COL_NAME) FROM TABLE WHERE COL_NAME = ' '
SELECT COUNT (COL_NAME) FROM TABLE WHERE TRIM (COL_NAME)= ' '

上述所有查询的结果为0

但是,当我做到了

SELECT COL_NAME DUMP (COL_NAME,1016) FROM TABLE

给我:

COL_NAME       DUMP (COL_NAME,1016)
               NULL
               NULL
               NULL

等等..

但是该列中有数百或数千个空白字段/空字段。任何人都可以帮助我找到列中那些空白/空字段的数量?
我使用Toad for Oracle 9.0.1.8

COUNT(expresion)返回表达式不为空的行计数。所以SELECT TABLE COUNT(COL_NAME)FROM TABLE WHERE COL_NAME IS NULL将返回0,因为您只计数col_name,其中col_name为空,只有空值为零。 COUNT(*)将返回查询的行数:

SELECT COUNT (*) FROM TABLE WHERE COL_NAME IS NULL

其他两个查询可能不返回任何行,因为它们尝试与一个空白字符的字符串进行匹配,并且转储查询指示列实际上保持空值。

如果您有要包含在计数中的具有空格字符的变量字符串的行,请使用:

SELECT COUNT (*) FROM TABLE WHERE trim(COL_NAME) IS NULL

修剪(COL_NAME)将会移除开始和结束的空格。如果字符串只是空格,则字符串将变为“在Oracle中等于null”。

http://stackoverflow.com/questions/9165491/null-or-blank-fields-oracle

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:NULL或BLANK字段(ORACLE)