我有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,".",",")
希望你能在这里帮助我。 谢谢。
答案 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添加验证。如果你有 ed帮助,请告诉我们。