Dalam beberapa bahasa NULL ditangani secara berbeda:Kebanyakan orang tahu tentang logika dua nilai di mana true
dan false
adalah satu-satunya nilai yang sebanding dalam ekspresi boolean (bahkan salah didefinisikan sebagai 0 dan benar seperti yang lainnya).
Dalam SQL Standar Anda harus memikirkan logika tiga nilai. NULL tidak diperlakukan sebagai nilai sebenarnya, Anda bisa menyebutnya "tidak diketahui". Jadi jika nilainya tidak diketahui, tidak jelas apakah dalam kasus Anda state
adalah 0, 1, atau apa pun. Jadi NULL != 1
hasil menjadi NULL
lagi.
Ini menyimpulkan bahwa di mana pun Anda memfilter sesuatu yang mungkin NULL, Anda harus memperlakukan nilai NULL sendiri. Perhatikan bahwa sintaksnya juga berbeda:Nilai NULL hanya dapat dibandingkan dengan x IS NULL
bukannya x = NULL
. Lihat Wikipedia untuk tabel kebenaran yang menunjukkan hasil operasi logika.