COUNT(*) 과 COUNT(컬럼) 은 NULL을 포함할 때 다른 결과를 반환한다.
COUNT(*) 은 NULL을 포함한 개수를 반환하지만 COUNT(컬럼)은 NULL을 제외한 개수를 반환한다.
-- 테스트용 테이블 생성 CREATE TABLE COUNT_TEST ( COL1 INT IDENTITY(1,1) , COL2 INT ) GO
-- 데이터 삽입 INSERT INTO COUNT_TEST(COL2) VALUES (1) INSERT INTO COUNT_TEST(COL2) VALUES (NULL) INSERT INTO COUNT_TEST(COL2) VALUES (7) INSERT INTO COUNT_TEST(COL2) VALUES (NULL) INSERT INTO COUNT_TEST(COL2) VALUES (15) GO
-- 두 쿼리 결과 비교 SELECT COUNT(*) FROM COUNT_TEST SELECT COUNT(COL2) FROM COUNT_TEST GO
|
NULL을 포함해야 할 경우와 포함하지 않아야 할 경우 적절하게 사용하도록 하자.
'DBMS > SQL Server' 카테고리의 다른 글
[SQL Server] 로그 파일 크기 축소하기 (0) | 2013.12.24 |
---|---|
[SQL Server] MDF, LDF 파일을 이용한 데이터베이스 복구 (0) | 2013.12.19 |
[SQL Server] 테이블의 종류 (0) | 2013.10.06 |
[SQL Server] uniqueidentifier 데이터 형식 (0) | 2013.10.06 |
[SQL Server] char vs varchar (0) | 2013.10.06 |