Я пытаюсь создать инструкцию T-SQL для фильтрации запроса по тому, является ли поле NULL
или содержит ли оно значение.Было бы просто, если бы вы могли назначить NULL
или NOT NULL
как результат дела, но это не представляется возможным.
Вот psuedocode:
WHERE DateColumn = CASE @BitInput
WHEN 0 THEN (all null dates)
WHEN 1 THEN (any non-null date)
WHEN NULL THEN (return all rows)
Из моегопонимание того, что условие WHEN 0
может быть достигнуто без предоставления условия WHEN
(для возврата значения NULL
).
Условие WHEN 1
выглядит так, как будто оно может использовать подстановочный знак, ноЯ получаю сообщение об ошибке преобразования типа.Присвоение столбцу самого себя исправляет это.
Я понятия не имею, что делать для условия WHEN NULL
.Моя внутренняя логика, кажется, думает, что назначение столбца себе должно решить эту проблему, но это не так, как указано выше.
Я воссоздал это с использованием динамического SQL, но по разным причинам я бы предпочел, чтобы он был создан в нативномкод.
Буду признателен за любой ввод.Спасибо.