sql – 如何查找哪些列没有任何数据(所有值都为NULL)?
发布时间:2020-07-16 02:03:13  所属栏目:MsSql  来源:互联网 
            导读:我在数据库中有几个表.我想找到哪些列(在哪些表中)没有任何值(列中的所有NULL).我在下面的例子中,结果应该是 TestTable1 -- Var2TestTable2 -- Variable1 我不知道如何创建这种查询.非常感谢您的帮助! --create first tablecreate table dbo.TestTable1 (sur
                
                
                
            | 
                         我在数据库中有几个表.我想找到哪些列(在哪些表中)没有任何值(列中的所有NULL).我在下面的例子中,结果应该是 TestTable1 --> Var2 TestTable2 --> Variable1 我不知道如何创建这种查询.非常感谢您的帮助! --create first table
create table dbo.TestTable1 (
sur_id int identity(1,1) not null primary key,var1 int null,var2 int null
)
go
--insert some values
insert into dbo.TestTable1 (var1) 
    select 1 union all select 2 union all select 3
--create second table
create table dbo.TestTable2 (
sur_id int identity(1,variable1 int null,variable2 int null
)
--and insert some values
insert into dbo.TestTable2 (variable2) 
    select 1 union all select 2 union all select 3
解决方法对于单个列,count(ColumnName)返回ColumName不为null的行数:select count(TheColumn) from YourTable 您可以为所有列生成查询.根据Martin的建议,您可以使用is_nullable = 1排除不能为null的列.例如: select  'count(' + name + ') as ' + name + ','
from    sys.columns
where   object_id = object_id('YourTable')
        and is_nullable = 1 
 如果表的数量很大,您可以以类似的方式为所有表生成查询.所有表的列表都在sys.tables中. (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- 如何在Teradata中执行动态SQL
 - mssql server .ldf和.mdf的文件附加数据库的sql语句
 - 用户 jb51net 登录失败。原因: 该帐户的密码必须更改
 - sql server启动不了, MSSQL 18052错误: 9003,严重度: 20,
 - sql-server – 如何在SQL Server中调试合并?
 - 我可以在R脚本中优雅地包含格式化的SQL字符串吗?
 - 是否有像SQL Server 2005的TRY / CATCH块这样的MySQL功能?
 - 一些有用的sql语句整理 推荐收藏
 - sql server 2005中使用with实现递归的方法
 - insert select与select into 的用法使用说明
 
