首页 > 解决方案 > 使用 Informatica powercenter 或 SQL 将列成对转换为行

问题描述

我有一个要求,我必须跟踪列上的更改并显示更改的值和新值

我有一个包含员工属性的源文件。我对员工表进行了查找,并返回了我正在跟踪更改的员工属性。我创建了一个标志,我在其中比较来自源和外观的列。我也有一个路由器来过滤掉 update_flag='Y'

employee_id,name,old_department_id,new_department_id,old_salary,new_salary

1,SAM,10,20,100,200

employee_id,employee_attribute,old_value,new_value

1,SAM,department_id,10,20

1,SAM,薪水,100,200

标签: sqlinformaticainformatica-powercenterdenormalized

解决方案


您可以为要创建的每条记录使用带有输出的路由器。路由器可以为单个输入记录输出多个记录。

Group1 : old_department_id != new_department_id
Group2 : old_salary != new_salary

在路由器之后,您使用表达式来构建您想要的记录值,例如添加列employee_attribute。然后将每个表达式的输出与一个联合组合起来。


推荐阅读