从我的表中选择所有'fields',其值为NULL

时间:2014-02-06 16:40:55

标签: sql sql-server-2008

我有一份调查问卷表格,其中存储了表格的价值,可以在以后完成(如果没有完成)。 我想要一种跟踪表单完成百分比的机制。我想过计算不完整字段的百分比与表的字段总数的比较。我想要这样的东西:

SELECT * FROM tbapplication t WHERE t.* IS NOT NULL

上面的SQL不起作用。我的表有100多个字段,所以我相信包括所有字段并检查每个字段的IS NULL是不是正确的方法。 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

无法以您尝试的方式对表中的每一列进行IS NULL检查。

第一个问题应该是如果我的表格有100列

我认为你的调查答案很多,每个答案都有自己的专栏?

您需要重新设计表格并规范化表格的结构。

答案 1 :(得分:0)

不幸的是,我无法想办法询问SQL当前特定行中有多少列NULL。目前我想到了三种解决方案,可以让您以更“一般”的方式实现您想要的目标。你可以坚持其中一个:

  1. 每次存储行时:计算缺失字段的数量,并将此信息存储在专用表列中。

  2. 根据syscolumns中存储的信息自动生成您的查询。

  3. (可能?)重新设计您的数据库,以便将信息存储在相关的行而不是列中。