可能重复: 计算SQL中一行中的空列
我一直在寻找这个问题的答案,但我既找不到有用的答案,也找不到合适的答案,而且我是SQL的新手。
我有一个包含事件团队的表,除其他列外,还有team_member_1、team_member_2、team_member_3、team_member_4、team_member_5。每个团队都存储该团队成员的名称,每个团队都有不同数量的成员(在3到5之间)。
我试图通过计算该行/团队中有多少列/字段是NOT NULL来计算团队中的人数。
如果我的脑袋会像:
Select Count NOT NULL team_member_1, team_member_2, team_member_3,
team_member_4, team_member_5
from Teams
where team_id = 5当然这不管用。然后,我想把这个数字乘以be 20(因为事件成本是每人20 be),给我每支球队欠我多少钱,这将在网站上得到回应。希望一切都有意义。
发布于 2011-12-31 17:23:42
正如其他人所指出的,这是一个糟糕的设计,你应该尝试正常化。然而,我会尝试这样的方法:
Select Count(*) from teams where
(team_id = 5) and
(team_member_1 is not null or
team_member_2 is not null or
team_member_3 is not null or
team_member_4 is not null or
team_member_5 is not null)您至少应该通过创建Team表和成员表并将成员引用到Team,从而将其规范化为第一个普通形式。
https://stackoverflow.com/questions/8689407
复制相似问题