总计所有列中的空值计数

时间:2019-12-06 13:07:34

标签: sql sql-server

总共有100列要在所有列中查找空值的地方。

enter image description here

FindNull函数可以帮助我将'null'转换为'1'以便对其进行计数

enter image description here

这是我的代码:

       (select totalAmountOfNull = 
               (select  count(*) from (select 
 countOfNull=
                            [dmt].[findNull](column1) + 
                            [dmt].[findNull](column2) + 
                            [dmt].[findNull](column3) )
                            from dmt.tableName ) as t10 where t10.totalAmountOfNull = 3

由于“ 3”,答案是错误的。主要问题是我在一个表中确实有100列,并且希望总共查找所有空值。但是这段代码给了我错误的数字。

1 个答案:

答案 0 :(得分:1)

在SQL Server中,您可以使用apply

select count(*)
from t cross apply
     (values (t.col1), (t.col2), (t.col3), . . . ) v(col)
where v.col is null;

您需要列出values()子句中的所有列。