È così in SQL (come linguaggio logico) perché null significa sconosciuto/non definito.
Tuttavia, nei linguaggi di programmazione (come ad esempio C++ o C#), un puntatore/riferimento null è un valore specifico con un significato specifico:niente.
Due nulla sono equivalenti, ma due incognite no. La confusione deriva dal fatto che lo stesso nome (null) è usato per entrambi i concetti.