舍入 SQL 服务器 在较大的查询中选择



我正在尝试在查询中舍入结果(许多列中的 1 列(

Select *  (DocTotal - Vat) * Rate AS TOTAL, ItemCode, Qty
From 
ORDR

以上是我的选择声明(从更大的角度(

Doctotal is a decimal 20,2
Vat is a decimal 20,2

Rate is decimal 2,4

(其他列没有问题(

这将返回具有 6 位小数的 TOTAL 结果,例如 353.690000

是否可以将计算的结果四舍五入到小数点后 2 位。

将其转换为小数将隐式舍入计算中生成的浮点值。

select *, 
cast((DocTotal - Vat) * Rate as decimal(20,2)) AS TOTAL,
ItemCode, Qty
from ORDR

因此,实际上不需要先用 ROUND 对其进行四舍五入。

或者,如果您更喜欢该语法,也可以改用 CONVERT。
在这种情况下,工作方式相同。 但它特定于SQL Server。
虽然 CAST 是一个标准功能 (SQL-92(。

convert(decimal(20,2), (DocTotal - Vat) * Rate) AS TOTAL

最新更新