Trong một số ngôn ngữ, NULL được xử lý khác nhau:Hầu hết mọi người đều biết về logic hai giá trị trong đó true
và false
là các giá trị có thể so sánh duy nhất trong các biểu thức boolean (thậm chí là false được định nghĩa là 0 và true như bất kỳ thứ gì khác).
Trong SQL chuẩn, bạn phải nghĩ về logic ba giá trị. NULL không được coi là một giá trị thực, bạn có thể gọi nó là "không xác định". Vì vậy, nếu giá trị không xác định, nó sẽ không rõ ràng nếu trong trường hợp của bạn state
là 0, 1 hoặc bất kỳ thứ gì khác. Vì vậy, NULL != 1
kết quả đến NULL
một lần nữa.
Điều này kết luận rằng bất cứ khi nào bạn lọc một cái gì đó có thể là NULL, bạn phải tự xử lý các giá trị NULL. Lưu ý rằng cú pháp cũng khác:giá trị NULL chỉ có thể được so sánh với x IS NULL
thay vì x = NULL
. Xem Wikipedia để biết bảng sự thật hiển thị kết quả của các phép toán logic.