You could use this table-valued function:
CREATE FUNCTION [dbo].[Chars]
(
@Text NVARCHAR(MAX)
)
RETURNS @ItemTable TABLE (Item VARCHAR(250))
AS
BEGIN
DECLARE @i INT
DECLARE @Item NVARCHAR(4000)
SET @i = 1
WHILE (@i <= LEN(@Text))
BEGIN
INSERT INTO @ItemTable(Item)
VALUES(SUBSTRING(@Text, @i, 1))
SET @i = @i + 1
END
RETURN
END
Now this query should work as desired:
SELECT t.ID, SUM(CAST(Split.Item AS INT)) AS SumID
FROM dbo.TableName t
CROSS APPLY dbo.Chars(CONVERT(varchar(10), t.ID))Split
GROUP BY t.ID
Here's a demo: http://sqlfiddle.com/#!3/8eea7/8/0