Учтите, что легче найти равенство:
(Column = @Value or (Column is null and @Value is null))
Что приводит к истине, когда оба значения равны.В идеале мы могли бы отрицать это утверждение, чтобы найти неравенство, но логика SQL в трех состояниях нарушает эту идею, как NOT(UNKNOWN) = UNKNOWN
--DO NOT USE, broken
NOT (Column = @Value or (Column is null and @Value is null))
Следовательно, если мы проверяем только значение TRUE
и отрицая это, мы все равно получим читаемую операцию.
CASE WHEN Column is null and @Value is null or Column = @Value THEN 1 ELSE 0 END = 0