은 다음과 같습니다SQL : 합계 (콜라 COLB) 합계 (콜라) -sum 대 (COLB)
select sum(colA)-sum(colB) from Table
가 동일로 : 너무 보이지만, 단지 확인
select sum(colA-colB) from Table
:)
은 다음과 같습니다SQL : 합계 (콜라 COLB) 합계 (콜라) -sum 대 (COLB)
select sum(colA)-sum(colB) from Table
가 동일로 : 너무 보이지만, 단지 확인
select sum(colA-colB) from Table
:)
예, 다를 수 있습니다. 의 데이터가 NULLs
인 경우. 다음 고려 :
DECLARE @TestTable TABLE (ID INT IDENTITY(1,1), ColA INT, ColB INT)
INSERT INTO @TestTable (ColA, ColB) VALUES (5,2)
INSERT INTO @TestTable (ColA, ColB) VALUES (5,NULL)
INSERT INTO @TestTable (ColA, ColB) VALUES (NULL,2)
SELECT SUM(ColA) - SUM(ColB) FROM @TestTable
SELECT SUM(ColA - ColB) FROM @TestTable
첫 번째 쿼리가 6 (10-4)을 반환합니다 두 번째 쿼리는 3 (5-2 플러스 5 NULL 플러스 NULL-2)을 반환합니다 동안. 직접 계산에서 NULL 값이 사용될 때마다 계산이 NULL을 반환합니다.
전혀 아님. 특히 그들은 NULL
값을 다르게 처리합니다. 그래서, 고려 :
A B
1 NULL
2 2
NULL 2
쿼리 :
select sum(colA) - sum(colB)
SUM 반환합니다 (1, 2) - SUM (2, 2) = -1
쿼리 :
select sum(colA - colB)
은 SUM (NULL, 2-2, NULL) = 0을 반환합니다.
범위가있는 숫자로 인해 발생할 수있는 다른 미묘한 차이가 있습니다. 예를 들어, 한 가지 방법은 계산 제한을 초과하고 오류를 생성 할 수 있습니다. 또는 십진수가 다를 수 있습니다. 그러나 일반적으로 NULL
의 처리가 가장 큰 차이점입니다.
예에서'sum (colA-colB)'에 대한 결과가 0입니까? –
@ZoffDino. . . 예, 그렇습니다. 고맙습니다. –
@ GordonLinoff 편집하면 나에게 이해가 가지 않는다. '(NULL + 4 + NULL) = 4' 또는'(NULL + 4 + NULL) = NULL'도 내게 의미가 있습니까? – Jonathan