CASE
возвращает NULL
, если ни одна из ветвей WHEN
не соответствует и не определена ветка ELSE
. Таким образом, вы получаете NULL
s для записей, где status_level = 'CLAIM' AND status = 'CLOSED'
не выполняется.
Ваш ожидаемый результат выглядит так, как будто вам нужны записи, которые удовлетворяют условию status_level = 'CLAIM' AND status = 'CLOSED'
. Для фильтрации записей используйте предложение WHERE
, а не CASE
в списке столбцов.
SELECT DISTINCT
effective_date firstclosedate
FROM status
WHERE status_level = 'CLAIM'
AND status = 'CLOSED';
Вы можете дополнительно отфильтровать effective_date
с NULL
, если они есть, если вы хотите их опустить.
SELECT DISTINCT
effective_date firstclosedate
FROM status
WHERE status_level = 'CLAIM'
AND status = 'CLOSED'
AND effective_date IS NOT NULL;