我有我已示出的下方的简化示例的表:计数数不为空 - MS访问SQL
ID | Item1 | Item2 | Item3 | Item4 | Item5
------------------------------------------
A | NULL | NULL | YES | YES | NULL
B | NULL | NULL | NULL | YES | NULL
C | NULL | NULL | NULL | NULL | NULL
欲返回以下数据集:
ID | Count
------------
A | 2
B | 1
C | 0
iee我想的是如何列的多不NULL
该ID的计数
一个潜在的解决方案是
SELECT
ID,
SUM(
IIf(Item1 is NULL,0,1)
+
IIf(Item2 is NULL,0,1)
+
IIf(Item3 is NULL,0,1)
+
IIf(Item4 is NULL,0,1)
+
IIf(Item5 is NULL,0,1)
) 'Count'
FROM
tableName
GROUP BY
ID
然而,在实践中我使用的是真正的表有一百多列,我宁愿以避免必须写出每列的名称。有没有更简单的方法来做到这一点?
谢谢唐乔治。是的,我刚决定走这条路。感谢您将此代码放在一起。我曾希望有一些方法可以用SQL来完成,但最重要的是找到可行的解决方案,因为这样做 – Leroy