Нет.SQL считает NULL
«я понятия не имею».Сравнение чего-либо с «Я понятия не имею» приводит к ответу «Я совершенно не знаю».Смотри:
- Как высоко Джон?
- Понятия не имею.
- Что на два сантиметра выше Джона?
- Понятия не имею.
Даже сравнение между двумя NULL
значениями неверно: если я не знаю, какой у Джона рост, и если я также не знаю, какой рост у Джека, я не могу сделать выводчто Джон такой же высокий, как Джек (и я не могу сделать вывод, что Джон не такой же высокий, как Джек).Единственный разумный ответ ... «Я понятия не имею».
Способ проверки на NULL
- с помощью оператора IS
, который специально существует для этого сценария (например, @column IS NULL
или @column IS NOT NULL
).
То есть NULL
не равно 0
и НЕ равно 0
.Результат NULL <> 0
равен NULL
.Тем не менее, NULL
ложно в отношении условий, поэтому CASE
считает, что вы должны получить ветку ELSE
в любое время @column
равно NULL
.