创建计算列并舍入

Create a computed column and round

我的 table 中有 3 numeric(18,2) 列。我想创建一个 fourth columncomputed。我在 SSMS 中将计算列创建为 numeric (18,2) ,就像其他 3 列一样。

当我对我的新列 运行 SELECT 时,它计算得很好,但没有四舍五入到小数点后两位。我试过在我的计算列定义中使用 ROUND 函数,但这没有用。它将我的数据类型重置为 numeric (38,6),现在不允许我更改它。

我的新列定义是 ((Length * Width * Height) / 166)

我希望最终结果四舍五入到小数点后两位。我做错了什么?

您需要将 computed column 转换为 numeric(18,2)

示例:

CREATE TABLE computed
  (
     a NUMERIC(18, 2),
     b NUMERIC(18, 2),
     c AS CONVERT(NUMERIC(18, 2), a * b)
  )

INSERT INTO computed VALUES (1,2)

SELECT *
FROM   computed