加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – SQL Server中的ISNULL(SUM(x),0)或SUM(ISNULL(x,0

发布时间:2020-12-12 16:48:21 所属栏目:MsSql教程 来源:网络整理
导读:以下哪一项是正确的? SUM(ISNULL(Sales,0)) AS Sales,ISNULL(SUM(Sales),0) AS Sales, 还是他们都是正确的? 解决方法 它们都返回相同的,除非您在空结果集上运行查询. WITH Sales(Sales) AS(SELECT 1)SELECT SUM(ISNULL(Sales,0) AS SalesFROM Sales WHERE 1
以下哪一项是正确的?
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)的结果列的数据类型不被视为可空.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读