gpt4 book ai didi

oracle - NULL或空白字段(ORACLE)

转载 作者:行者123 更新时间:2023-12-03 09:04:26 24 4
gpt4 key购买 nike

我是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)返回expresion而不是null 的行数。因此,SELECT COUNT (COL_NAME) FROM TABLE WHERE COL_NAME IS NULL将返回0,因为您仅在col_name为null的情况下计算col_name,而除null之外没有其他计数为零。 COUNT(*)将返回查询的行数:

SELECT COUNT (*) FROM TABLE WHERE COL_NAME IS NULL

其他两个查询可能不返回任何行,因为它们试图与具有一个空白字符的字符串匹配,并且您的转储​​查询表明该列实际上持有空值。

如果您要在计数中包含要包含空格字符的可变字符串的行,请使用:
SELECT COUNT (*) FROM TABLE WHERE trim(COL_NAME) IS NULL
trim(COL_NAME)将删除开头和结尾空格。如果字符串是空格,则字符串变为 ''(空字符串),在Oracle中等效于null。

关于oracle - NULL或空白字段(ORACLE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9165491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com