【问题标题】:Using Convert function to change datatype of computed column使用 Convert 函数更改计算列的数据类型
【发布时间】:2018-02-21 10:06:52
【问题描述】:

我知道在 How do I control the datatype of a computed column?

我使用以下代码添加一列。但是,在 Object Explorer > Design 中找不到数据类型。我需要最终结果就业将对象资源管理器显示为就业数字 (9,0)

alter table dbo.equi add employment AS CAST((m1+m2+m3)/3 AS numeric(9));

我有三列

m1 numeric (6,0)
m2 numeric (6,0)
m3 numeric (6,0)

所以要按照上一个问题的引导,我会使用这样的东西吗:

CONVERT(numeric(9,0), (
                        CONVERT(NUMERIC(6, 0), [M1])
                      * CONVERT(NUMERIC(6, 0), [M2])
                      * CONVERT(NUMERIC(6, 0), [M3]
                     )

【问题讨论】:

    标签: sql-server tsql ddl alter sql-convert


    【解决方案1】:

    在您的情况下,您不需要CONVERT(NUMERIC(6,0),...),因为它们是多余的,因为列已经是NUMERIC(6,0),只需使用:

    CONVERT(numeric(9,0), [M1] * [M2] * [M3])
    

    另外,您不需要降低精度,因为maximum precision of the operation 是 (6+6+6+1)=19 并且它不超过 SQL Server 支持的最大精度 38(在问题中)您链接他们需要这样做,因为其中一列的精度已经为 38,因此任何乘法都会超过最大精度)。

    【讨论】:

      猜你喜欢
      • 2010-10-07
      • 2019-11-08
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      相关资源
      最近更新 更多