SQL:动态循环
我希望对SQL语句生成的值进行舍入,但要动态舍入 我实际上忘记了这个词的官方术语,但是你可以用这个解释来理解它:SQL:动态循环,sql,oracle,rounding,Sql,Oracle,Rounding,我希望对SQL语句生成的值进行舍入,但要动态舍入 我实际上忘记了这个词的官方术语,但是你可以用这个解释来理解它: 129.12144214 --> 129 0.000052142124 --> 0.0000521 2.213131 --> 2.21 在这种情况下,非零小数的数量当然是3 如何在SQL中实现这一点?按照这些步骤,您应该会得到所需的结果(例如129.12144214): 获取日志10:211099836751079 减少小数:2 把你的名字改成,。。。带(10^
129.12144214 --> 129
0.000052142124 --> 0.0000521
2.213131 --> 2.21
在这种情况下,非零小数的数量当然是3
如何在SQL中实现这一点?按照这些步骤,您应该会得到所需的结果(例如129.12144214):
- 获取日志10:211099836751079
- 减少小数:2
- 把你的名字改成,。。。带(10^2):1.29121442
- 四舍五入至2位小数:1.29
- 乘以(10^2):129
SQL中的一切都是可能的!^^你能更详细地解释一下逻辑吗?你为什么期望129而不是129.121?刚刚修复了示例中的一个错误。。。我只想要前三个非零值,后面什么都不要。5001.123的预期结果是什么?和0.01?它的预言:选择(圆(0.00005214124/功率(10,楼层(日志(10,0.00005214124))),2))*功率(10,楼层(日志(10,0.00005214124)))作为双
DECLARE @x decimal(18,6);
SET @x = 129.12144214 ;
SELECT (ROUND(@x / POWER(10, FLOOR(LOG10(@x))), 2)) * POWER(10, FLOOR(LOG10(@x)))