SSIS SUBSTRING 是一个字符串函数,用于返回给定字符串或字符表达式中从给定索引位置开始到指定长度的部分。本文将解释如何使用 SUBSTRING 函数,并提供一个示例,提取字符串或字符表达式部分的语法如下所示。
SUBSTRING(<<character_expression>>, <<start>>, <<length>>)
- Character_expression:原始字符串或列名。
- Start(integer):子字符串开始从字符表达式中提取字符的位置或起始位置。
- length (integer):您希望从起始位置在字符表达式中提取的总字符数。
为了演示 SSIS 字符串 SUBSTRING 函数,我们使用下面有 15 条记录的 Employee 表。请参阅 SSIS 中的 Union All Transformation、Derived Column Transformation、Built-in Functions 和 SQL Server 文章。

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

接下来,双击它以打开派生列转换编辑器。将 SSIS SUBSTRING 函数拖放到表达式下的行单元格中,将 Character_expression 替换为列名称,并为 start 和 length 参数添加整数。您可以手动删除整个 <<character_expression>> 表达式,也可以拖放相同的表达式,或者 Email 列将自动替换它。
下面的表达式从第四个位置(索引)开始提取,并从第四个位置返回六个字符。
SUBSTRING( [Name] , 4, 6 )

下面的表达式从 Email Address 列的第十个位置开始返回八个字符。
SUBSTRING( [Email Adress] , 10, 8 )
在下面的代码中,我们使用 LEN 函数查找长度。然后使用 FINDSTRING 获取 @ 符号的位置。接下来,SSIS SUBSTRING 函数从电子邮件地址返回域名。
SUBSTRING( [Email Adress] , FINDSTRING( [Email Adress] , "@", 1 ) + 1 , LEN( [Email Adress] ) - FINDSTRING( [Email Adress] , "@", 1 ) )
单击“确定”关闭编辑器窗口。拖放 Union All 转换并将派生列连接到它。接下来,右键单击连接节点并选择“启用数据查看器”。
请运行 SUBSTRING 函数包以查看整个字符串(姓名和电子邮件地址)的一部分。
