派生列表达式仅捕获10个字符

时间:2016-02-02 18:26:22

标签: sql-server tsql transformation ssis-2012 sql-server-2012-datatools

我是SSIS的新手,我一直在寻找这个问题的解决方案。非常感谢任何帮助!

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

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

我有一个[列],定义为11个字符

我的问题是如何编写一个表达式只捕获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个字符的列

我正在使用visual studio 2012

谢谢Dawana

1 个答案:

答案 0 :(得分:0)

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

LEFT(column,10)

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