SQL多表查询列名

时间:2016-06-01 16:09:18

标签: sql sql-server database

我在SQL中的数据库中有多个表(数字> 100),每个表可能有几百个条目。

对于每个表,我试图从表中检索具有至少一个非空条目的列的名称。

我该怎么做?

1 个答案:

答案 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,但想法是一样的。