Да Уроборус понятия подменяет. На ошибку сервер выводит. Есть значение unknown. Это когда сервер не понимает как сравнивать.
1 он никак не может сравнить с пустотой и выдает ответ unknown. Естественно и отрицание uknown тоже будет непонятно что. Поэтому сервер все равно uknown выдает. Зависит от настройки ANSI_NULL. Можно включить и тогда сервер будет выдавать FALSE на ошибку.
Уроборус не считает сравнение с пустотой ошибкой. И с SQL у него проблемы. Правильно написать выражение он должен был
1 is null. Тогда отрицание NOT (1 is null) будет TRUE. А Уроборус подменил на неправильную строчку, в тупик машину поставил, что так, что отрицание у него uknown получается. И думает, что это троичная логика. Проверить можно
здесьВводим
SELECT CASE
WHEN (1=NULL) THEN 0
WHEN NOT(1=NULL) THEN 1
ELSE -1
END
Машина выдает -1 Типа это не ИСТИНА и не ЛОЖЬ.
Но на самом деле корявость Уроборуса, да еще админы, бредовые ситуации не отключили.
А вот так машина понимает, что от нее хотят и выдает 1
SELECT CASE
WHEN (1 is NULL) THEN 0
WHEN NOT(1 is NULL) THEN 1
ELSE -1
END