2009-03-17 17 views
9

count()関数は行をカウントし、非常に頻繁にcount(*)として使用されます。 phoneNoとfirstNameのテーブルがある場合、count(phoneNumber)count(*)と同じ番号を返します。入力されていない場合は、各行にすべての列が常に表示されます。なぜcount()関数にパラメータが必要なのですか?

+0

ユニークで試してください –

答えて

20

微妙な違いがあります。

フィールドを指定した場合、count(fieldname)は、のNULLではないフィールドの値がであるレコードをカウントします。 count(*)は合計行を返します。

4

MSDN

カウント(PHONENO)はPHONENOがnullではないレコードの数を返します参照してください。 Count(*)は、数値に関係なく数値を返します。

+0

+1:ドキュメントを引用してください。 –

2

COUNT(*)はすべての行をカウントします。 COUNT(yourColumn)は、yourColumnNULLの行を含みません。そこにあなたのテーブル内の20行があるとphoneNumber列は、これらの行の5でNULLある場合

たとえば、その後、COUNT(*)あなたは明確なカウントすることができCOUNT(phoneNumber)に対し20は、一方で15

7

を返します戻ります値。 count(distinct firstName)はcount(distinct phoneNumber)とは異なる結果をもたらし、両方ともcount()と異なる場合があります。

関連する問題