代码之家  ›  专栏  ›  技术社区  ›  priyanka.sarkar

所有数字的和分解成一个数字

  •  1
  • priyanka.sarkar  · 技术社区  · 8 年前

    我有一张和下面一样的桌子

    numbers
    794
    709090
    

    我需要的是所有数字的总和,例如 7+9+4=20;2+0=2 或 7+0+9+0+9+0=25;2+5=7 .

    我尝试了下面的脚本,但不知何故不起作用:

    declare @t table(numbers int)
    insert into @t select 794 union all select 709090
    
    declare @maxValue int
    select @maxValue = max(numbers) from @t
    
    ;with cte as(
    SELECT SUM(CAST(SUBSTRING(cast(numbers as varchar(1000)),number,1) AS INT)) SUMOFDIGITS FROM @t 
    
    cross apply ( 
    SELECT DISTINCT number FROM
    MASTER..SPT_VALUES WHERE number > 0 AND number <= DATALENGTH(@maxValue) ) x)
    
    select SUMOFDIGITS, finalsum = cast(left(SUMOFDIGITS,1) as int)+cast(right(SUMOFDIGITS,1) as int)
    from cte
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   Stanislav Kundii    8 年前
    DECLARE @a int = 709090
    select   (@a - 1) % 9 + 1