在COUNT(CASE WHEN [Column A] = ____ THEN 1 END
和COUNT(CASE WHEN [Column A] = ____ THEN 1 ELSE 0 END
之间有何区别?
我一直在使用前者,到目前为止还没有看到区别;添加ELSE 0
的原因是什么 - 是否存在SQL Server错误计数的情况?
在COUNT(CASE WHEN [Column A] = ____ THEN 1 END
和COUNT(CASE WHEN [Column A] = ____ THEN 1 ELSE 0 END
之间有何区别?
我一直在使用前者,到目前为止还没有看到区别;添加ELSE 0
的原因是什么 - 是否存在SQL Server错误计数的情况?
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;
输出: