gpt4 book ai didi

sql-server - SQL Server 一轮又一轮的划分

转载 作者:行者123 更新时间:2023-12-03 01:35:29 25 4
gpt4 key购买 nike

在存储过程中,我有一个类似的表达式

select @some_val_in_percents = (@total_val / 100) * @some_val

如果我像这样使用 Round 函数:

select @some_val_in_percents = Round((@total_val / 100) * @some_val, 0)

计算整个表达式时,结果会四舍五入吗?还是将(@total_val/100)四舍五入后乘以@some_val

最佳答案

您似乎错误地计算了百分比值。这是我期望的样子:

@some_val * 100 / @total_val

至于ROUND()函数时,它将作用于表达式的最终结果,而不是部分结果。因此,首先对表达式进行完全求值,然后 ROUND()应用于结果。

另请注意(如果您还不知道的话),如果除法运算符的两个操作数都是整数,SQL Server 将执行整数除法,即除法的结果将向下舍入 到最接近的整数,甚至之前 ROUND()被申请;被应用。如果您想避免这种情况,请确保至少有一个操作数不是整数,例如像这样:

ROUND(@some_val * <b>100.0</b> / @total_val, 2)

另请注意第二个参数(精度),Transact-SQL ROUND() 中需要它。 .

关于sql-server - SQL Server 一轮又一轮的划分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10278903/

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