效率: Count(1) > Count(欄位名) > Count(*)
count(1)是絕對快,它只統計記錄條數,對條件下的表掃描一遍而已(包含NULL)count(*)是可能快,有主鍵的時候只掃主鍵,主鍵數等於記錄數(包含NULL)count(欄位別)回傳列數(不包含NULL)count(主鍵)=count(1)
1
2
3
4
5
6
7
8
9
10
11
/*
count(1) 是絕對快,它只統計記錄條數,對條件下的表掃描一遍而已(包含NULL)
count(*) 是可能快,有主鍵的時候只掃主鍵,主鍵數等於記錄數(包含NULL)
count(欄位別) 回傳列數(不包含NULL)
count(主鍵) = count(1)
*/
--取得商品清單的件數
select count(1) from [商品清單] --count = 10,包含 null的資料
--「數位相機」的「販賣單價」的值為null,就不會被計算
select count([販賣單價]) from [商品清單] --count = 9,不包含 null的資料