NULLがカウントされない

これ、知らなくて盲点だったのですが、

ID EmployeeCode EmployeeName
1 0010 沖田総司
2 0020 永倉新八
3 null 斎藤一
4 0040 松原忠司

例えば、こんなテーブルがあったとして、

EmployeeCodeが’0040’以外のレコード数をカウントしたいとした場合、

SELECT COUNT(*) FROM Employee WHERE EmployeeCode != '0040'

こんな風にしていたのですが、これだとnullのレコードはカウントされずに、結果が2となってしまいます。

結果:2

 

対処方法

nullも含めてカウントしたい場合は、以下のようにnull値を別の値に変換して認識させる必要があります。

SELECT COUNT(*) FROM Employee WHERE ISNULL(EmployeeCode, '') != ''

結果:3

 

ただ、この例の場合、コードにnullが入るような設計自体あまり良くないとも言えますが。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


ABOUTこの記事をかいた人

子どもが産まれたことをきっかけに働き方を見直し、フリーランスSEになった30代の父親。 埼玉県某市在住。 妻と娘(5歳)とペット(フェレット)で、日々悩みながらも楽しく過ごしています。