Это больше вопрос для удовлетворения моего собственного любопытства. Учитывая следующее утверждение:
DECLARE @result BIT
SET @result = CASE WHEN NULL <> 4 THEN 0
ELSE 1
END
PRINT @result
Почему я получаю обратно "1" вместо "0"
Изменение на:
DECLARE @result BIT
SET @result = CASE WHEN NULL IS NULL
OR NULL <> 4 THEN 0
ELSE 1
END
PRINT @result
Правильно возвращает мне "0"
Я знаю, что сравнение NULL может быть сложным, но этот конкретный пример проскочил через наш процесс проверки кода.
Любые разъяснения будут с благодарностью