当我试图更新一些表的值时,出现了这个错误。
我有一个表列和一些浮点值
Values
---------------------
11.7830808596997
-9.41220524769667
1.70771403155729
-26.1598813945345
1.40722323420305
0.315202798180501
-3.27870943910565
4.49832736699458
-21.8406197004573
12.6569938818624
10.3327211608816
-14.9366297400332
-1.96665717283736
5.90430556370099
1.59122918690946
1.01784176743728
-41.3800628432377
现在我想换成0.3333的幂。
所以我写了一份声明
update table
set value = power(value, 0.3333)
但我犯了个错误
味精3623
发生无效的浮点操作
你能建议我怎么修吗?我想做一些像
(1 + value) ^ 1/3 - 1
在t-sql中
1条答案
按热度按时间l2osamch1#
我想这就是你想要的逻辑:
问题是不能将负数提升为分数次幂,因为结果通常是虚数,而不是浮点数。这个简单的函数将值转换为正数并记住符号。
您还可以使用:
这是一把小提琴。