답변:
첫 번째 경우에는 1과 NULL을 계산하는 것으로 충분합니다. CASE 문의 조건이 일치하지 않고 ELSE 절이없는 경우 NULL이 반환됩니다. NULL은 계산되지 않습니다. 두 번째 경우 1과 0입니다. 0을 셀 수 있습니다.
빠른 예 :
CREATE TABLE #CountMe (Col1 char(1));
INSERT INTO #CountMe VALUES ('A');
INSERT INTO #CountMe VALUES ('B');
INSERT INTO #CountMe VALUES ('A');
INSERT INTO #CountMe VALUES ('B');
SELECT
COUNT(CASE WHEN Col1 = 'A' THEN 1 END) AS CountWithoutElse,
COUNT(CASE WHEN Col1 = 'A' THEN 1 ELSE NULL END) AS CountWithElseNull,
COUNT(CASE WHEN Col1 = 'A' THEN 1 ELSE 0 END) AS CountWithElseZero
FROM #CountMe;
산출: