COUNT(欄位) 也不計 NULLCOUNT(*) 計算所有列,包含 NULLCOUNT(欄位) 也算上 NULL,用 COUNT(ISNULL(欄位,0))CREATE TABLE xCount (pkey1 INT IDENTITY PRIMARY KEY, Col1 INT NULL)
INSERT xCount (Col1) VALUES (10), (15), (20), (NULL)
SELECT AVG(Col1) AS AvgNoIsNull, -- 15 (忽略 NULL)
AVG(ISNULL(Col1,0)) AS AvgWithIsNull, -- 11 (NULL 視為 0)
COUNT(Col1) AS CntNoIsNull, -- 3
COUNT(ISNULL(Col1,0)) AS CntWithIsNull, -- 4
COUNT(*) AS CntAll -- 4
FROM xCount
(原文標題提及三問題,正文僅詳細說明計數問題。空表值與外鍵相關處理建議參考官方文件:外鍵欄位允許 NULL 時不參考檢查;插入空表值需注意約束定義。)