包含下列值表:为什么包含空值的多个列的Sql和返回不正确的结果?
Column1 Column2
1 NULL
NULL 4
2 NULL
NULL 5
3 6
以下查询:
SELECT
SUM([Column1] + [Column2])
FROM [myTable]
返回9
的值时,它应该返回21
。为什么?它如何达到价值?
我知道SUM可以通过添加ISNULL
像这样进行修正:
SELECT
SUM(ISNULL([Column1], 0) + ISNULL([Column2], 0))
FROM [myTable]
,但我想知道的逻辑值9
'null'和一个数字的总和是多少?请注意'9'来自哪里:唯一具有非空'Column1'和_' Column2'的行。 –
@MattBall是的!我现在看到,计算将跳过具有空列1或列2的任何行。如果您添加该答案作为答案,我会将其标记为正确 –