Вы можете использовать альтернативный синтаксис для case
:
select MONTH(sale_date) AS MOIST,
(CASE MONTH(sale_date)
WHEN 1 THEN A
WHEN 2 THEN B
WHEN 3 THEN C
WHEN 4 THEN D
ELSE E
END) as value
Вы также можете использовать OUTER APPLY
:
select month(sale_date),
coalesce(v.val, E)
from . . . outer apply
(select val
from (values (1, A), (2, B), (3, C), (4, D)
) v(mon, val)
where v.mon = month(sale_date)
) v
Или LEFT JOIN
:
select month(sale_date),
coalesce(v.val, E)
from . . . left join
(values (1, A), (2, B), (3, C), (4, D)
) v(mon, val)
on v.mon = month(sale_date)