以下哪一项是正确的?
SUM(ISNULL(Sales,0)) AS Sales,ISNULL(SUM(Sales),0) AS Sales,
还是他们都是正确的?
解决方法
它们都返回相同的,除非您在空结果集上运行查询.
WITH Sales(Sales) AS ( SELECT 1 ) SELECT SUM(ISNULL(Sales,0) AS Sales FROM Sales WHERE 1=0
返回
Sales Sales ----------- ----------- NULL 0
SUM(ISNULL(Sales,0))版本将避免ANSI WARNINGS关于聚合NULL.
另一个微妙的区别是ISNULL(SUM(Sales),0)的结果列的数据类型不被视为可空.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。