你如何找到两个数字之间的数字总和。

时间:2013-08-16 14:51:59

标签: sql sql-server

您如何找到两个数字之间的数字总和。例如,1到5之间的数字之和为9,即2 + 3 + 4。

4 个答案:

答案 0 :(得分:2)

由于1到N之间的整数之和等于N *(N + 1)/ 2,所以非常简单:

create function sumBetween(@p_Lower integer, @p_Upper integer) returns int
as
begin
  return ((@p_Upper-1) * @p_Upper)/2 - (@p_Lower * (@p_Lower+1))/2
end

select dbo.sumBetween(1,5)

SQL Fiddle

编辑修复了小提琴中的fencepost错误

答案 1 :(得分:1)

数学公式: ((a + b)* n / 2) - a - b

其中n是a和b之间的位数,包括a和b

如果a = 2且b = 5那么

((2 + 5)* 4/2) - 2 - 5 = 7

答案 2 :(得分:0)

((Xn + 1)* Xn / 2) - (X1-1)* X1 / 2 - Xn - X1

XN = 5 X1 = 1   ((5 + 1)* 5/2) - (1-1)* 1 / 2-5-1 = 9

XN = 5 X1 = 2     ((5 + 1)* 5/2) - (2-1)* 2/2 - 5 -2 = 7

您可能需要稍微调整一下......

答案 3 :(得分:0)

您可以像在SQL Functions - factorial中那样修改SQL中的阶乘代码,以构建您想要的函数。

i * (i+1)的行更改为i + (i+1),您应该有一个解决方案。