0

我是 SSIS 的新手,我已经搜索过这个问题的解决方案。非常感谢任何帮助!

我有一个平面文件,其数据定义为 dt_wstr,以更改数据类型我使用数据转换将 [column] 设置为 dt_str(50)

我也在使用派生列 - 添加为新列:目标是编写一个表达式

我有一个定义为 11 个字符的 [column]

我的问题是如何编写一个仅捕获 10 个字符的表达式,以及大于 10 的任何字符我想将 [column] 更改为 -1 else (dt_I8) [column]

我试过了:

FINDSTRING([Column],"9999999999",1) == 10 ? -1 : (DT_I8)TRIM([Column]) 

FINDSTRING([Column],"9999999999",1) > 10 ? -1 : (DT_I8)TRIM([Column]) 

LEN([Column]) == 10 ? -1 : (DT_I8)[column]

SUBSTRING( [Copy of Member ID] ,1,10)

包运行没有错误,但表中的结果不正确,超过 10 个字符的列未显示在表中

我正在使用视觉工作室 2012

谢谢达瓦娜

4

1 回答 1

0

我不知道为什么您的子字符串尝试不起作用,但这将返回的前 10 个字符column

LEFT(column,10)

https://msdn.microsoft.com/en-us/library/hh231081(v=sql.110).aspx

于 2016-02-02T18:46:41.803 回答