我正试图因此而获得SP的表现。我对SUM和ISNULL有一个疑问。当我总结一个专栏时,我应该使用ISNULL吗?如果没有ISNULL,那么使用SUM()安全吗?我的例子如下
SUM(ISNULL(COL1,0))由于ISNULL成本很高,所以我打算使用以下不带ISNULL的SUM
SUM(COL1)我做了一些小测试,看不见结果
发布于 2016-05-18 09:50:36
是的,它很安全。可以在不处理空值的情况下使用Sum。你也可以检查一下。
你也可以这样用。
ISNULL(SUM(COL1),0)
返回表达式中所有值的和,或仅返回不同的值。和只能与数字列一起使用。忽略空值。
发布于 2016-05-18 09:35:55
更新的
如果4列中有1、2、NULL、5,则输出为8。
但是,在许多情况下,如果不检查NULLS,则使用SUM()是不安全的。
如果给定子句没有匹配的内容,则可以接收null。如果你在另一个函数中使用这个求和值,这可能是一个值得关注的问题。
这里有更多详细信息:https://msdn.microsoft.com/en-GB/library/ms187810.aspx
也请看一下https://msdn.microsoft.com/en-IN/library/ms190349.aspx合并方法
PS:也可以查看这个post - My Select SUM query returns null. It should return 0
这里有3个不检查NULL的图像,它返回NULL,而不是0。
和与ISNULL检查

和不带ISNULL检查

和合并

发布于 2016-05-18 09:57:55
由于SUM总是忽略空值,所以在执行SUM时使用NULL和ignore并不是强制性的。
有关更多信息,请参考链接:https://msdn.microsoft.com/en-IN/library/ms187810.aspx。
https://stackoverflow.com/questions/37295336
复制相似问题