Derived Column(派生列转换)

派生列转换通过对转换输入列应用表达式来创建新列值。表达式可以包含来自转换输入的变量、函数、运算符和列的任意组合。结果可作为新列添加,也可作为替换值插入到现有列。派生列转换可定义多个派生列,任何变量或输入列都可以出现在多个表达式中。

可以使用此转换执行下列任务:

  1. 将不同列的数据连接到一个派生列中。例如,可以使用表达式 FirstName + " " + LastName 将 FirstName 和 LastName 列中的值组合到名为 FullName 的单个派生列中。
  2. 通过使用 SUBSTRING 之类的函数从字符串数据中提取字符,然后将结果存储到派生列中。例如,可以使用表达式 SUBSTRING(FirstName,1,1) 从 FirstName 列提取人名的首字母。
  3. 对数值数据应用数学函数,然后将结果存储到派生列中。例如,可以使用表达式 ROUND(SalesTax, 2) 将数值列 SalesTax 的值更改为精确到小数点后两位。
  4. 创建比较输入列和变量的表达式。例如,可以使用表达式 ProductVersion == @Version? ProductVersion : @Version 来比较变量 Version 与 ProductVersion 列中的数据,然后根据比较结果决定选用 Version 还 ProductVersion 的值。
  5. 提取日期时间值的某部分。例如,可以通过表达式 DATEPART("year",GETDATE()) 使用 GETDATE 和 DATEPART 函数提取当前年份。

请看以下 Data Flow Task 示例:

14321372_200903181136011.jpg

示例说明:

                     14321372_200903181140241.jpg

  • Derived Column: 数据转换, Time列只取到小时, SelectedPeriod 列将{,}去除
  • Data Conversion: 数据类型转换, 将SelectedPeriod列转换为数值类型的数据

对于Derived Column中的操作:

14321372_200903181149431.jpg

注意Expression中的操作:

SUBSTRING(Time,1,FINDSTRING(Time,"M",1))
REPLACE(SelectedPeriod,",","")

这里使用了String Functions中的 SUBSTRING, FINDSTRING, REPLACE函数进行处理. 在写这个的时候要特别注意与SQL Script. 不同的 SSIS 中我们要使用" " 代替 SQL 函数中 ' ' 的写法. 为了数据处理的过程看的更清楚,我在Derived Column 后面添加了一个 Data Viewers 这样在整个处理的过程中我们可以看到如下的数据:

14321372_200903181157151.jpg

请注意 SelectTime 和 SelectPeriod 这两列的数据。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23155850/viewspace-671431/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23155850/viewspace-671431/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值