在Teradata中查找具有NULL值的列

时间:2013-05-14 00:19:22

标签: sql null teradata

我想在表中找到其中包含空值的列。 是否有系统表具有该信息?

2 个答案:

答案 0 :(得分:4)

要查找允许“null”值的列,请尝试...

select *
from dbc.columns 
where databasename = 'your_db_name'
and tablename = 'your_table_name'
and Nullable = 'Y'

然后识别具有空值的特定行,从前一个结果集中获取“ColumnName”并运行查询以识别结果...如果要对它们采取进一步操作,可能将它们抛出到易失性表中(更新,删除)。

-- for example you found out that column "foo" is nullable... 
create volatile table isnull_foo_col
as
(
  sel * 
  from your_table_name 
  where foo is null
) with data 
on commit preserve rows;

答案 1 :(得分:0)

如果您在该列上收集了统计信息,则可以使用针对Teradata 12.0.03+和Teradata 13.0.02+的 here 视图来确定表中的记录数有NULL值。

在Teradata 14中,如果您将SHOW STATISTICSVALUES子句一起使用,您将获得上述链接中列出的视图生成的类似信息。

您可以使用DBC.Columns数据字典视图来确定特定表中的哪些列可以为空。