Pikirkan null sebagai "tidak diketahui" dalam kasus itu (atau "tidak ada"). Dalam kedua kasus tersebut, Anda tidak dapat mengatakan bahwa keduanya sama, karena Anda tidak mengetahui nilai keduanya. Jadi, null=null dievaluasi menjadi tidak benar (salah atau nol, tergantung pada sistem Anda), karena Anda tidak tahu nilai untuk mengatakan bahwa mereka ADALAH sama. Perilaku ini didefinisikan dalam standar ANSI SQL-92.
EDIT:Ini tergantung pada pengaturan ansi_nulls Anda. jika Anda menonaktifkan ANSI_NULLS, ini AKAN dievaluasi menjadi true. Jalankan kode berikut sebagai contoh...
set ansi_nulls off
if null = null
print 'true'
else
print 'false'
set ansi_nulls ON
if null = null
print 'true'
else
print 'false'