Another variant (Fiddle)
;WITH vw_OutstandingVsInStock1 (length)
AS (SELECT 0.9 UNION ALL
SELECT 1.2 UNION ALL
SELECT 1.5 UNION ALL
SELECT 1.8 UNION ALL
SELECT 2.1 UNION ALL
SELECT 2.4 UNION ALL
SELECT 2.7 UNION ALL
SELECT 3.0 UNION ALL
SELECT 3.3 UNION ALL
SELECT 3.6)
SELECT IIF(length % 1 = 0,
CAST(length AS INT),
CAST(length AS SQL_VARIANT))
FROM vw_OutstandingVsInStock1