SSIS – if / elseexpression式将string转换为数字

我有Excel工作表,其中相同的列可以包含%格式的值和十进制符号 。 澄清:在Excel中,两者具有相同的格式,但由于不同的Excel版本(位置),SSIS显示它们是这样的: 1,3%0.814260540128523

这些值以stringforms出现,所以我试图找出将%格式化值除以100的方法,并保留其他值。

最初我用:

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

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

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

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

希望你能帮助我。 谢谢。

 (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,".",",") 

您也可以使用脚本组件。 这是一个快速的解决scheme; 你可能需要为null添加validation。 让我们知道,如果你 在这里输入图像说明 编辑帮助。