如何获得前两位数字后的小数点?

时间:2019-05-08 17:40:16

标签: sql sql-server ssis

我正在使用ssis在数据库中以12345612.3456的形式获取数据,我希望转换给定列中的所有数据,例如12.3456,有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

如果您的目标是将每个值限制为小数点后两位,请使用round函数作为“派生列转换”中的表达式。

ROUND(((DT_NUMERIC)(SourceValue)), 2)

答案 1 :(得分:0)

类似的东西:

(case when value > 100 then value / 10000.0
      else value
 end)

答案 2 :(得分:0)

添加具有以下表达式的派生列转换:

检查第三位数字是否为分隔符(点),然后将其保留为列值,否则将值转换为字符串并将分隔符添加到第三位

SUBSTRING((DT_WSTR,50)[SourceColumn],3,1) == "." 
? (DT_DECIMAL,10)[SourceColumn] 
: (DT_DECIMAL,10)(LEFT((DT_WSTR,50)[SourceColumn],2) + "." + SUBSTRING((DT_WSTR,50)[SourceColumn],3,LEN((DT_WSTR,50)[SourceColumn] - 2)))

注意:您可以删除类型转换,因为添加了它们是因为您没有提供任何有关列数据类型的信息