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。 让我们知道,如果你 编辑帮助。