我遇到了问题,我想知道我是否可以在SQL中执行此操作。
ID ACC_NO
----------------
1 2342
2 8938
3 8089
Result
ID ACC_NO ACCUM
---------------------
1 2342 11
2 8938 28
3 8089 25
我想积累ACC_NO(2 + 3 + 4 + 2 = 11)
我能做到吗?有什么选项可以在SQL中累积数据吗?
由于
答案 0 :(得分:1)
是的,你可以做到。这是一种假设您的字段ACC_NO始终为四位(或更小)的方式:
SELECT ID
,ACC_NO
,FirstDigit = (ACC_NO / 1000) -- Included these
,SecondDigit = (ACC_NO % 1000) / 100 -- so you could
,ThirdDigit = (ACC_NO % 100) / 10 -- see the
,FourthDigit = (ACC_NO % 10) -- breakdown
,ACCUM = (ACC_NO / 1000) + ((ACC_NO % 1000) / 100) + ((ACC_NO % 100) / 10) + (ACC_NO % 10)
FROM MyTable
注意:%是模数运算符
答案 1 :(得分:0)
正如Vache所说,你应该在程序中而不是sql中求和。 虽然我给你的解决方案,期望你的号码是4位数。
SELECT ID, ACC_NO, ( SUBSTRING(ACC_NO,1,1) +SUBSTRING(ACC_NO,2,1) +SUBSTRING(ACC_NO,3,1) +SUBSTRING(ACC_NO,4,1)) as ACCUM
FROM jj_salary_info