Test Data
DECLARE @MyTable TABLE (Column1 INT,Column2 INT)
INSERT INTO @MyTable VALUES
(1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3)
SELECT CASE
WHEN GROUPING(Column1) = 1 THEN 'Total'
ELSE CAST(Column1 AS VARCHAR(10))
END Column1
, SUM(Column2) AS MySum
FROM @MyTable
GROUP BY Column1
WITH ROLLUP;
Result set
βββββββββββ¦ββββββββ
β Column1 β MySum β
β ββββββββββ¬ββββββββ£
β 1 β 6 β
β 2 β 6 β
β 3 β 6 β
β Total β 18 β
βββββββββββ©ββββββββ
Note
The reason you could not do what you tried to do is because when using the operator CASEin each case, the returned data type must be the same.
In the above query, I only have CAST colum1 in varchar and it worked.