请教:一条记录中 计算有多少个字段是不为0的

lwllp2007 2008-06-12 02:32:49
表如下
ID sname num1 num2 num3 num4 num5

1 aa1 1 2 0 5 2
2 aa2 1 0 6 0 2
3 aa3 0 4 3 0 2

比如统计
aa1 num3=0 则有一个为0的字段
aa2 num2=0,num4=0 则有两个为0的字段
...全文
164 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiseeker 2008-06-12
  • 打赏
  • 举报
回复
select sname,
(case num1 when 0 then 1 else 0 end ) +
(case num2 when 0 then 1 else 0 end ) +
(case num3 when 0 then 1 else 0 end ) +
...
(case numN when 0 then 1 else 0 end ) as 零的个数

from t1
S170393163 2008-06-12
  • 打赏
  • 举报
回复

select count(num1) where num1 <> 0

select count(num2) where num1 <> 0

...
Coco孙 2008-06-12
  • 打赏
  • 举报
回复
select name,
case num1 when 0 then 1 else 0 end as a +
case num2 when 0 then 1 else 0 end as b +
case num3 when 0 then 1 else 0 end as c +
case num4 when 0 then 1 else 0 end as d as 等0的个数
from tb1
lwllp2007 2008-06-12
  • 打赏
  • 举报
回复
能否用sql语句实现?
还有一点,num1 等的字段值比较多

caizhenfang 你的效果不是我需要的
三省Ta叔 2008-06-12
  • 打赏
  • 举报
回复
SELECT sname,
SUM(CASE num1 WHEN num1>0 THEN 1 END) AS num1,
SUM(CASE num2 WHEN num2>0 THEN 1 END) AS num2,
SUM(CASE num3 WHEN num3>0 THEN 1 END) AS num3,
SUM(CASE num4 WHEN num4>0 THEN 1 END) AS num4,
SUM(CASE num5 WHEN num5>0 THEN 1 END) AS num5
FROM T1
GROUP BY sname ...
mysky0103 2008-06-12
  • 打赏
  • 举报
回复
写个存储过程

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧