SSIS中的表达问题

时间:2012-04-05 14:48:58

标签: ssis

我有一个像这种格式的字符串,在我的情况下,我只需要从字符串中提取字符 情况下

1)12AB
2)SD12
3)1WE4

输出

1)AB
2)SD
3)WE

我只需要提取字符 我在SSIS包中的dervied列中使用此表达式

SUBSTRING(MediaIDCode,1,2)

但这种表达只适用于这种情况

1)12AB

我需要获得适用于上述所有条件的表达式 我尝试过使用REPLACE('','1',''),但它变成了一个很大的表达

任何帮助都会很棒

由于

王子

2 个答案:

答案 0 :(得分:3)

您发布的SUBSTRING功能代码将从字符串中提取字符而不考虑其内容。

请查看使用正则表达式过滤掉不需要的字符:

http://consultingblogs.emc.com/jamiethomson/archive/2005/07/04/SSIS-Nugget_3A00_-The-script-component-and-regular-expressions.aspx

答案 1 :(得分:1)

您还可以使用同步脚本转换以这种方式过滤字符:

    Dim NewMediaIDCode As String = ""

    For Each c As Char In Row.MediaIDCode
        If Not Char.IsDigit(c) Then
            NewMediaIDCode += c
        End If
    Next

    Row.MediaIDCode = NewMediaIDCode

我在这里使用过IsDigit方法,但还有很多其他方法可供选择。