SQL Server:在所有列中查找空值

时间:2016-02-03 15:59:12

标签: sql-server

假设我有一个包含三列的简单表格,如下所示:

USER_ID         Number_Of_Apples         Number_Of_Pears
ABC1                    1                     NULL
ABC2                    2                     NULL
ABC3                   NULL                    5
ABC4                    10                     12

现在,如果我运行此查询:

SELECT Number_Of_apples 
FROM table 
WHERE Number_Of_apples IS NULL

它将返回ABC3的结果,SSMS将在右下角显示返回1行。

这很好,但是如果我想要" 1行返回的总结信息"在所有列?即:我希望它返回类似的东西:

Number_Of_Apples      Number_Of_Pears
         1                   2

我有大约一百列,所以我真的希望我不必进入并更改WHERE条款100次以手动查看它有多少记录。我会回来的。有没有简单的方法可以做到这一点?

编辑:

所以我实际拥有的数据肯定不是聚合表。它有一个政策编号和各种其他栏目,如地址,国家/地区,风险评级,团队ID,行业代码等。我们正在尝试确定在我们的预测模型中使用哪些变量(列),但首先我们'我想确保那里有数据 - 因此我们要检查每列的空值。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作,但对于您的100个字段,它会变得相当笨拙。我想问题是为什么你有100个字段反对用户记录?如果您发布原始表(可能)创建了您的信息,那么可能会有比写这个重复查询更好的解决方案吗?

SELECT SUM(CASE WHEN [Number_Of_Apples] IS NULL THEN 1 ELSE 0 END) [Number_Of_Apples],
       SUM(CASE WHEN [Number_Of_Pears] IS NULL THEN 1 ELSE 0 END)  [Number_Of_Pears]
etc...
FROM table
相关问题