我想在表中找到其中包含空值的列。 是否有系统表具有该信息?
答案 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 STATISTICS
与VALUES
子句一起使用,您将获得上述链接中列出的视图生成的类似信息。
您可以使用DBC.Columns数据字典视图来确定特定表中的哪些列可以为空。