日期:2014-05-18  浏览次数:20775 次

sqlServer中Sum函数碰到null不做了?
在SQLServer2000中测试如下:
如一表Table ,A,b,c,d字段
A字符,b,c,d为int

Select a,sum(b+c+d) as e
from Table1
group by a

如果,其中一个为NULL,则系统计算结果也为NULL,即b,c,d中一个为NULL,则sum(b+c+d) 结果为NULL
这是为何?怎么避免此问题?


------解决方案--------------------
Select a,sum(isnull(b,0)+isnull(c,0)+isnull(d,0)) as e
from Table1
group by a

------解决方案--------------------
在SQL 里NULL 与任何字符 数字 相加减都为null

Select a,sum(isnull(b,0)+isnull(c,0)+isnull(d),0) as e 
from Table1 
group by a
------解决方案--------------------
Select a,sum(isnull(b,0)+isnull(c,0)+isnull(d,0)) as e 
from Table1 
group by a
------解决方案--------------------
用isnull即可