это работает правильно, потому что вы используете оператор равенства, и вы можете изменить свой запрос следующим образом:
DECLARE @UNITS TABLE
(
UNITCNT1 VARCHAR(MAX)
)
insert into @UNITS values(12)
SELECT
CASE WHEN CAST(UNITCNT1 AS VARCHAR(MAX)) = '.00' THEN 'ALL AGES' ELSE '' END AS AGE_CAT
,CASE WHEN CAST(UNITCNT1 AS VARCHAR(MAX)) >= 18.00 THEN 'ADULT' ELSE '' END AS AGE_CAT1
FROM @UNITS
Я думаю, лучше использовать десятичный формат для числового столбца, например:
DECLARE @UNITS TABLE
(
UNITCNT1 VARCHAR(MAX) -- or decimal type i dont know your schema
)
insert into @UNITS values(12)
SELECT
CASE WHEN CAST(UNITCNT1 AS decimal) = .00 THEN 'ALL AGES' ELSE '' END AS AGE_CAT
,CASE WHEN CAST(UNITCNT1 AS decimal) >= 18.00 THEN 'ADULT' ELSE '' END AS AGE_CAT1
FROM @UNITS