我有一个要在SSIS中处理的csv文件。该文件包含列类型字符串Unicode字符串[DT_WSTR],例如:ColumnA->("00000123400"
)。
我想删除123400左侧的零,并删除引号,其结果如下:123400
。
对于引号,我可以通过派生列REPLACE (ColumnA, "\" "," ")
找到以下解决方案:00000123400
。
如何删除左侧的零?
删除引号后,我尝试将我的字符串转换为整数[DT_I4],但这并没有删除零。
你对我的案子有答案吗?预先感谢。
答案 0 :(得分:1)
部分案例的解决方案是:
在“派生”列中添加表达式:
REPLACE(LTRIM(REPLACE(ColumnA,"0","")),"","0")
它删除了剩下的零
您可以看到链接:Removing left padding zero in SSIS
它工作正常,但是是否可以修剪左零并在表达式中同时删除引号?
示例:我有Column1,它是带引号的字符串,并且左零-“ 0000123400”
我尝试以下表达式:
REPLACE(REPLACE(LTRIM(REPLACE(column1, "0", " ")), " ", "0"),"\""," ")
但是它不起作用,它会删除所有零并返回1234。
我想要的解决方案是获得123400。
我应该一个接一个地做吗?创建一个已交付的列并先删除引号,然后为“左零”创建另一个已交付的列?
谢谢。
答案 1 :(得分:0)
您似乎希望输出为数字形式?如果是这样,下面的表达式将删除引号和前导零,同时保留Unicode文本中的尾随零。这可以通过一次操作完成,一个派生列将创建一个新列(添加新列选项),并在数据流中使用整数输出数据类型。
(DT_I4)REPLACE(ColumnA,"\"","")
如果要将其保留为Unicode数据类型,则下面的表达式也将在单个“派生列”中执行此操作。只需根据您的列调整长度即可。
(DT_WSTR, 50)(DT_I4)REPLACE(CoulmnA,"\"","")