gpt4 book ai didi

sql-server - 如何使 power() 函数使用小数而不是整数?

转载 作者:行者123 更新时间:2023-12-01 07:46:28 25 4
gpt4 key购买 nike

以下查询会抛出一个错误:

SELECT POWER( 10, 13)

错误信息:

Msg 232, Level 16, State 3, Line 1
Arithmetic overflow error for type int, value = 10000000000.000000.

我该怎么做才能防止 int 溢出?

最佳答案

添加小数位:

SELECT POWER( 10.0, 11 - LEN(9)) - 1

这会导致从 int 到 DECIMAL(18,6) 的隐式转换。您可以将其编写为相同的结果:

SELECT POWER(CAST(10 as DECIMAL(18,6)), 11 - LEN(9)) - 1

POWER函数返回类型记录为:

Returns the same type as submitted in float_expression. For example, if a decimal(2,0) is submitted as float_expression, the result returned is decimal(2,0)

这意味着您的结果是 DECIMAL(18,6),在您的情况下它足够大以容纳最终结果。

关于sql-server - 如何使 power() 函数使用小数而不是整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23830111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com