SSIS FINDSTRING 函数

SSIS FINDSTRING 是一个字符串函数,用于查找并返回子字符串在字符串或字符表达式中指定出现的位置(索引位置)。本文将解释如何使用 FINDSTRING 函数,并提供一个示例以及查找子字符串或字符位置的语法,如下所示。

FINDSTRING(<<Character_expression>>, <<String>>, <<Occurrence>>)
  1. Character_expression:原始字符串或将要进行搜索的列名。
  2. String:要在 Character_expression 中搜索的字符或子字符串。
  3. Occurrence:这是一个整数值,用于决定 FINDSTRING 函数应从第几次出现开始读取位置。

为了演示 SSIS FINDSTRING 函数,我们使用下面的 Employee 表,该表有 15 条记录。请参考 SSIS 中的 Union All 转换派生列转换内置函数SQL Server 文章。

Source Table

SSIS FINDSTRING 函数

对于这个 FINDSTRING 示例,添加一个数据流任务,然后双击它进入数据流区域。接下来,添加 OLE DB 源以从上述 SQL 数据库表中读取数据。请将 OLE DB 源连接到派生列转换,因为它有助于编写 FINDSTRING 表达式并创建新列。

Data Flow to add Derived Column

接下来,双击它打开派生列转换编辑器。将 SSIS FINDSTRING 函数拖放到“表达式”下的行单元格中,并将 Character_expression 替换为字符串列名,String 替换为子字符串或字符,Occurrence 替换为整数。您可以手动删除整个 <<Character_expression>> 表达式,或者通过拖放列来自动替换它。

FINDSTRING( [Name] , " ", 1 )

FINDSTRING( [Name] , " ", 2 )

FINDSTRING( [Phone] , "-", 1 )
SSIS FINDSTRING Function Expression

单击“确定”关闭编辑器窗口。拖放 Union All 转换并将派生列连接到它。接下来,右键单击连接节点并选择“启用数据查看器”。

请运行 SSIS FINDSTRING 函数包,以查看 Name 字段中空格的位置以及 Phone 字段中“ - ”的位置。

  • Name1 – 显示 Name 字段中第一个空格出现的位置。
  • Name2 – 显示 Name 字段中第二个空格出现的位置。
  • Phone1 – 显示 Phone 字段中第一个“ - ”出现的位置。如果我将第二个参数更改为 2,FINDSTRING 函数将返回 8(而不是 4)。
SSIS FINDSTRING Function package output