派生列转换
更新日期: 2006 年 4 月 14 日
派生列转换通过对转换输入列应用表达式来创建新列值。表达式可以包含来自转换输入的变量、函数、运算符和列的任意组合。结果可作为新列添加,也可作为替换值插入到现有列。派生列转换可定义多个派生列,任何变量或输入列都可以出现在多个表达式中。
可以使用此转换执行下列任务:
- 将不同列的数据连接到一个派生列中。例如,可以使用表达式
FirstName + " " + LastName
将 FirstName 和 LastName 列中的值组合到名为 FullName 的单个派生列中。 - 通过使用 SUBSTRING 之类的函数从字符串数据中提取字符,然后将结果存储到派生列中。例如,可以使用表达式
SUBSTRING(FirstName,1,1)
从 FirstName 列提取人名的首字母。 - 对数值数据应用数学函数,然后将结果存储到派生列中。例如,可以使用表达式
ROUND(SalesTax, 2)
将数值列 SalesTax 的值更改为精确到小数点后两位。 - 创建比较输入列和变量的表达式。例如,可以使用表达式
ProductVersion == @Version? ProductVersion : @Version
来比较变量 Version 与 ProductVersion 列中的数据,然后根据比较结果决定选用 Version 还是 ProductVersion 的值。 - 提取日期时间值的某部分。例如,可以通过表达式
DATEPART("year",GETDATE())
使用 GETDATE 和 DATEPART 函数提取当前年份。
可以按照下列方式配置派生列转换:
- 为每个输入列或即将更改的新列提供表达式。有关详细信息,请参阅 Integration Services 表达式参考。
注意: 如果表达式引用了由派生列转换覆盖的输入列,则表达式使用列的原始值,而不是派生值。 - 如果向新列中添加结果,则需要更改数据类型。有关详细信息,请参阅 Integration Services 数据类型。
注意: 如果要将数据派生为日期或日期时间数据类型,那么即使区域设置首选项可能指定了其他格式,日期也要为 ISO 格式。 - 如果向新列中添加结果,则需设置字符串数据的列长度以及数值数据的精度和小数位数。有关详细信息,请参阅精度、小数位数和长度 (Transact-SQL)。
- 如果向新列中添加结果并且数据类型为 string,则需指定代码页。有关详细信息,请参阅比较字符串数据。
派生列转换包括 FriendlyExpression 自定义属性。加载包时,可以通过属性表达式更新此属性。有关详细信息,请参阅在包中使用属性表达式和Transformation Custom Properties。
此转换有一个输入、一个常规输出和一个错误输出。
配置派生列转换
可以通过 SSIS 设计器或以编程方式来设置属性。
有关可以在**“派生列转换编辑器”**对话框中设置的属性的详细信息,请参阅派生列转换编辑器。
**“高级编辑器”对话框反映了可以通过编程方式进行设置的属性。有关可以在“高级编辑器”**对话框中或以编程方式设置的属性的详细信息,请单击下列主题之一:
有关如何设置属性的详细信息,请单击下列主题之一:
请参阅
概念
创建包数据流
Integration Services 转换
帮助和信息
更改历史记录
版本 | 历史记录 |
---|---|
2006 年 4 月 14 日 |
|
2005 年 12 月 5 日 |
|