小数幂函数幂错误(“发生无效的浮点运算。”)

时间:2020-05-13 20:33:56

标签: sql sql-server

 sales_3Y
 0.521
 1.282
 0.71
 1.513
 1.502
 2357
 1.291
 1.393
 0
 0
 2.009

我需要计算列的1 / n根。

Select POWER(sales_3YR,(1.0/3))

错误-发生无效的浮点运算。

1 个答案:

答案 0 :(得分:2)

这表明分数n的exp(n*log(x))在内部实现为x<0,这对于所有create or alter function dbo.CubeRoot(@x float) returns float as begin if @x = 0 return 0; return sign(@x) * exp(log(abs(@x))/3.0) end 都将失败。您可以使用用户定义的函数来解决第n个奇数根的特殊情况:

select dbo.CubeRoot(-8)

-2

输出

pattern