SQL多表查询列名
我在SQL中的数据库中有多个表(数量>100),每个表可能有几百个条目 对于每个表,我只想从至少有1个非空条目的表中检索列的名称SQL多表查询列名,sql,sql-server,database,Sql,Sql Server,Database,我在SQL中的数据库中有多个表(数量>100),每个表可能有几百个条目 对于每个表,我只想从至少有1个非空条目的表中检索列的名称 如何执行此操作?要返回表/列名: SELECT table_name, column_name FROM information_schema.columns 这很简单,下面是一个针对null的解决方案,具体取决于您是否拥有权限: select a.table_name , schema_name , sum(c.rows) total_row
如何执行此操作?要返回表/列名:
SELECT table_name, column_name
FROM information_schema.columns
这很简单,下面是一个针对null的解决方案,具体取决于您是否拥有权限:
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中这样做了,您必须能够访问分区。此外,一些数据库使用sys而不是information_schema,但想法是相同的。请参阅规范化。您是否在寻找
非空
列或包含非空
数据的可空列?