2015-09-10 19 views
0

我正在使用SSIS包来将数据从一个表格传输到另一个表格。然而,我有一个困境,表中的一个字段(GroupName)在最后带有数字的数据。这有两种形式,字符串将是一个名称,然后是一组长度小于4个字符的数字。 (例如 - 组名22)如何检查从字符串中删除数字?

或者它将作为名称和四个数字字符出现。 (例如集团名称2012)。现在我想对SQL中的数据进行检查,看看字符串末尾的数字字符长度是否小于4.如果是,请删除数字。

谁能帮

回答

0

您可以使用PATINDEX

SELECT 
    SUBSTRING('Group Name 2012' 
    ,PATINDEX('%[0-9]%' 
    ,'Group Name 2012') 
    ,LEN('Group Name 2012')) as NumberOnly 
    ,LEN(SUBSTRING('Group Name 2012' 
    ,PATINDEX('%[0-9]%' 
    ,'Group Name 2012') 
    ,LEN('Group Name 2012'))) as Numberlength 
0

或者添加一个派生列转换与

NumericCheck= RIGHT(stringvariable,4) 

,然后在一个单独的派生列转换

(DT_I4)Numeric_check == (DT_I4)Numeric_check ? 1 : 0 

注意:您需要将错误输出配置为“忽略失败”才能进行此项检查。然后进行条件分割,通过OLE DB命令发送要更新的零值。