一尘不染

为什么包含空值的多列的SQL Sum返回错误的结果?

sql

该表包含以下值:

Column1  Column2
1        NULL
NULL     4
2        NULL
NULL     5
3        6

以下查询:

SELECT 
    SUM([Column1] + [Column2] ) 
FROM [myTable]

返回9应该返回的时间值21。为什么?它如何实现价值?

我知道可以通过添加SUM来纠正SUM ISNULL

SELECT 
    SUM(ISNULL([Column1], 0) + ISNULL([Column2], 0)) 
FROM [myTable]

但我想知道价值背后的逻辑 9


阅读 109

收藏
2021-05-23

共1个答案

一尘不染

null确切地说,和是多少?请注意9来源:唯一具有非nullColumn1和的行Column2

(应OP的要求复制)

2021-05-23