我在SQL中的数据库中有多个表(数字> 100),每个表可能有几百个条目。
对于每个表,我试图从表中检索具有至少一个非空条目的列的名称。
我该怎么做?
答案 0 :(得分:0)
返回表/列名称:
SELECT table_name, column_name
FROM information_schema.columns
这很简单,这里的空值解决方案取决于你是否拥有权限:
select a.table_name
, schema_name
, sum(c.rows) total_rows
from
information_schema.tables a
join information_schema.schemas b on (a.schema_id = b.schema_id)
join information_schema.partitions c on (a.object_id = c.object_id)
where c.index_id in (0,1)
group by a.name,b.name
having sum(c.rows) = 0;
注意:我在vertica中执行了此操作,您必须能够访问分区。另外,有些dbs使用sys而不是information_schema,但想法是一样的。