sql - 使用 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
解决方案
您可以为要创建的每条记录使用带有输出的路由器。路由器可以为单个输入记录输出多个记录。
Group1 : old_department_id != new_department_id
Group2 : old_salary != new_salary
在路由器之后,您使用表达式来构建您想要的记录值,例如添加列employee_attribute
。然后将每个表达式的输出与一个联合组合起来。
推荐阅读
- heroku - 谷歌云 DNS 子域映射到 Heroku
- c# - 使用 CollectionView 时 Xamarin 应用程序在 android 上崩溃
- python - 打包一个需要非python包的python项目
- git - 如何干净地删除包含 .gitignore 并可能包含临时忽略文件的目录?
- c++ - 如何解压缩霍夫曼编码文件?
- assembly - 打印可被输入 1 - 9 整除的 0 - 255 的所有数字
- scala - 过滤数据框中的日期范围
- r - 制作 ggplot 0,0 XY 坐标以与背景图像的特定点重合
- sql - 删除不起作用的地方
- c# - 如何使用 C# 在 Excel .xlsx 文件中基于行列组合在单元格中输入值?