我是新使用SSIS的,我使用派生列来查找和删除数字中的字符(" DI"),但是有了这个,我注意到了一些记录在" DI"之后有一些额外的字符,我需要那些只有" DI",如何将包含那些额外字符的记录设置为空值(不会弄乱仅包含" DI")?
答案 0 :(得分:0)
SSIS有几种方法可以做到这一点,但是一些简单的方法就是使用SQL。像这样的东西。我使用TRY_CAST到INT,但如果需要,您可以更改数据类型。第一个还更多地依赖于SQL Server版本。它是在SQL Server 2012中引入的。
SELECT
TRY_CAST(REPLACE(t.ColumnName,'DI','') AS INT) AS ColumnName
FROM SchemaName.TableName AS t
或其他选项,如果您使用较旧的SQL ...
SELECT
CASE
WHEN ISNUMERIC(REPLACE(t.ColumnName,'DI','')) = 1
THEN REPLACE(t.ColumnName,'DI','')
ELSE NULL
END AS ColumnName
FROM SchemaName.TableName AS t
在您的SOURCE到DESTINATION上,您将更改SOURCE以使用SQL脚本而不是直接表/视图。
答案 1 :(得分:0)
没关系,我想出了让它工作的方法,按长度分解过滤然后混合,所以谢谢你的帮助!