小编Sip*_*ang的帖子

计算数字总和

我有一列包含数字:

Value
-----
123
452
021
111
...
Run Code Online (Sandbox Code Playgroud)

我想得到每个值的数字之和。

答案应该看起来像

Value  SumValue
-----  --------
123    6
452    11
021    3
111    3
...    ...  
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

我试过这个:

select value
     , case
           when len(value) = 2 then convert(int, left(value, 1))
                                  + convert(int, right(value, 1))
           when len(value) = 3 then convert(int, substring(convert(varchar(1), value), 1,1))
                                  + convert(int, substring(convert(varchar(1), value), 2,1))
                                  + convert(int, substring(convert(varchar(1), value), 3,1))
           else value
       end as SumNum
from get_number (000, 999);
Run Code Online (Sandbox Code Playgroud)

当我达到三位数时,它无法正确计算,在我看来必须有更好的解决方案。

sql-server t-sql

1
推荐指数
1
解决办法
1316
查看次数

标签 统计

sql-server ×1

t-sql ×1