sql - 创建计算列并舍入

标签 sql sql-server calculated-columns

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

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

我的新列定义是 ((Length * Width * Height) / 166)
我希望最终结果四舍五入到小数点后两位。我究竟做错了什么?

最佳答案

您需要转换 computed columnnumeric(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 

关于sql - 创建计算列并舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28174372/

相关文章:

sql - 命名SQL表列的最佳实践

sql - 如何连接 PostgreSQL 'group by' 查询中字符串字段的字符串?

MYSQL SELECT 行的总和超过 200

sql - SSRS 2008 - 如何隐藏组可见性切换单元格中的加号图标

sql - TSQL 日期时间 ISO 8601

sql - T-SQL计算列如何获取ISO周数

mysql - 尝试创建一个 "Row Number"列,该列在新年伊始以及有新的声明投手时再次从 1 重新开始

sql - 如何在Azure Data Studio中创建脚本表数据?

sql-server - 表分区与多个表

mysql - 在mysql中添加一个计算列