아래 테스트를 통해
COUNT(*)은 NULL값을 포함하고, COUNT(column_name)는 NULL값을 포함하지 않는걸 확인할 수 있다.
COUNT(상수)를 사용해도 NULL값을 포함한다.
COUNT(*)은 NULL값을 포함하고, COUNT(column_name)는 NULL값을 포함하지 않는걸 확인할 수 있다.
COUNT(상수)를 사용해도 NULL값을 포함한다.
--VERSION MSSQL 2005
DECLARE @T TABLE (A VARCHAR(1))
INSERT INTO @T VALUES('A')
INSERT INTO @T VALUES('B')
INSERT INTO @T VALUES(NULL)
INSERT INTO @T VALUES('C')
SELECT * FROM @T [결과] A ----- A B NULL C
-- 입력목록보여주기
SELECT COUNT(*) CNT FROM @T -- null 포함 [결과] CNT ----------- 4 SELECT COUNT(A) CNT FROM @T [결과] CNT ----------- 3 경고: 집계또는다른SET 연산에의해Null 값이제거되었습니다.
SELECT COUNT(1) CNT FROM @T -- null 포함 CNT ----------- 4 |
-- 결과값이2^31-1 보다큰경우COUNT_BIG 사용
SELECT COUNT_BIG(*) BIG_CNT FROM @T -- null 포함
SELECT COUNT_BIG(A) BIG_CNT FROM @T
SELECT COUNT_BIG(1) BIG_CNT FROM @T -- null 포함