これ、知らなくて盲点だったのですが、
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が入るような設計自体あまり良くないとも言えますが。
コメントを残す