我正在使用SSIS包来将数据从一个表格传输到另一个表格。然而,我有一个困境,表中的一个字段(GroupName)在最后带有数字的数据。这有两种形式,字符串将是一个名称,然后是一组长度小于4个字符的数字。 (例如 - 组名22)如何检查从字符串中删除数字?
或者它将作为名称和四个数字字符出现。 (例如集团名称2012)。现在我想对SQL中的数据进行检查,看看字符串末尾的数字字符长度是否小于4.如果是,请删除数字。
谁能帮
我正在使用SSIS包来将数据从一个表格传输到另一个表格。然而,我有一个困境,表中的一个字段(GroupName)在最后带有数字的数据。这有两种形式,字符串将是一个名称,然后是一组长度小于4个字符的数字。 (例如 - 组名22)如何检查从字符串中删除数字?
或者它将作为名称和四个数字字符出现。 (例如集团名称2012)。现在我想对SQL中的数据进行检查,看看字符串末尾的数字字符长度是否小于4.如果是,请删除数字。
谁能帮
您可以使用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
或者添加一个派生列转换与
NumericCheck= RIGHT(stringvariable,4)
,然后在一个单独的派生列转换
(DT_I4)Numeric_check == (DT_I4)Numeric_check ? 1 : 0
注意:您需要将错误输出配置为“忽略失败”才能进行此项检查。然后进行条件分割,通过OLE DB命令发送要更新的零值。