Alasannya <>
tidak berfungsi adalah bahwa SQL memperlakukan NULL
sebagai tidak diketahui - tidak tahu apa NULL
seharusnya berarti, sehingga mengevaluasi keduanya =
dan <>
pada NULL
nilai sebagai UNKNOWN
(yang dianggap salah dalam klausa where atau kondisi join). Untuk info lebih lanjut, baca ini:Mengapa NULL =NULL dievaluasi menjadi false di server SQL
.
Jika ada indeks di dalamnya, menggunakan fungsi ISNULL berarti indeks tidak dapat digunakan, jadi untuk memastikan kueri dapat menggunakan indeks cukup gunakan OR
:
SELECT *
FROM TableName
WHERE
bit_column_value IS NULL OR bit_column_value = 0