SSIS - if / else表达式将字符串转换为数字

时间:2014-01-09 15:06:43

标签: excel ssis formatting expression

我有Excel工作表,其中同一列可以包含%格式以及十进制表示法的值。 澄清一下:在Excel中,两者都具有相同的格式,但由于不同的Excel版本(位置),SSIS显示如下: 1,3% 0.814260540128523

这些值以字符串形式出现,因此我试图找出一种方法将%格式化的值除以100并将其他值保留为原样。

最初我用过:

(DT_R8)[F5_CONV] < 1 ? (DT_R8)[F5_CONV] : (DT_R8)[F5_CONV] / 100

第二个派生列中,但我意识到 0,23%也是可能的值。

我认为这样的事情应该这样做,但我遇到DT_WSTR和DT_R8类型的问题。

(F5 == "" || ISNULL(F5)) ? NULL(DT_WSTR,40) : FINDSTRING(F5,"%",1) > 0 
? (DT_WSTR,40)REPLACE(REPLACE(F5,".",","),"%","")  / 100  
: (DT_WSTR,40)REPLACE(F5,".",",") 

希望你能在这里帮助我。 谢谢。

2 个答案:

答案 0 :(得分:1)

(F5 == "" || ISNULL(F5)) ? NULL(DT_WSTR,40) : FINDSTRING(F5,"%",1) > 0 
? (DT_WSTR,40)((DT_R8)REPLACE(REPLACE(F5,".",","),"%","")  / 100)  
: (DT_WSTR,40)REPLACE(F5,".",",") 

答案 1 :(得分:1)

您还可以使用脚本组件。这是一个快速的解决方案;您可能需要为null添加验证。如果你有enter image description here ed帮助,请告诉我们。