Вы не можете заставить его вернуть 2 отдельных типа данных в зависимости от CASE.
Если вы вставите этот результат в таблицу с использованием синтаксиса SELECT INTO, вы фактически увидите, что тип данных не DECIMAL (24,0), а DECIMAL (27,3)
т.е.
declare @tbt int =1
select
CASE WHEN @tbt=1 THEN CONVERT(DECIMAL(24,0),15.23335)
ELSE CONVERT(DECIMAL(24,3),15.23335) END AS Col
INTO SomeTestTable
--Now check the SomeTestTable schema
Итак, то, что сделал SQL Server, рационализировало его до единого определения типа данных, которое может соответствовать ОБА случаям.