插入表格后,小数点后的数字变为0

时间:2018-10-24 11:26:43

标签: sql vertica sqldatatypes

在Vertica中选择列时,它会显示普通数值:

  

SELECT nvl2(exposure_time_ms,ROUND(exposure_time_ms / 1000,案例,exposure_time_ms <10000 THEN 1 ELSE 0 END),0)::数字(12,1)AS Exposure_seconds

1

但是当我在表中插入相同的东西时,该表的列为“ expersure seconds”,类型为NUMERIC(12,1),它会将小数点后的所有数字更改为0:

2

1 个答案:

答案 0 :(得分:0)

大概是因为nvl2()计算产生一个整数。因此,请尝试以下操作:

SELECT nvl2(exposure_time_ms,
            ROUND(exposure_time_ms / 1000.0,
                  CASE WHEN exposure_time_ms < 10000 THEN 1 ELSE 0 END
                 ), 0
           )::numeric(12,1) AS exposure_seconds

我要说的是,根据幅度对值进行四舍五入真的没有意义。您应该按原样存储值,并使用四舍五入进行表示-如果确实需要它。