我想存储第一条记录的列值,并将该值与其余记录进行比较

时间:2018-05-28 20:11:54

标签: informatica informatica-powercenter

例如,我有以下数据

  

COL1 | COL2 | COL3 | COL4

     

AA | 123 | 456 | 50

     

BB | 101 | 222 | 50

     

CC | 102 | 232 | 70

     

DD | 103 | 142 | 70

     

EE | 104 | 472 | 50

这里我想要获取第一条记录的col4值并与其余的记录col4进行比较,如果它不匹配,我想在另一个端口捕获它。我想使用Informatica而不是使用Shell。

期望输出

  

COL1 | COL2 | COL3 | COL4 | COL5

     

AA | 123 | 456 | 50 |匹配

     

BB | 101 | 222 | 50 |匹配

     

cc | 102 | 232 | 70 |不匹配

     

dd | 103 | 142 | 70 |不匹配

     

EE | 104 | 472 | 50 |匹配

请使用Informatica不使用Shell帮助我实现此目的。

1 个答案:

答案 0 :(得分:1)

好的,你去吧。在以下内容中创建表达式:

  1. 创建一个可随每行增加的变量端口,例如: v_counter = v_counter + 1。把它作为端口列表中的最后一个。
  2. 创建一个可变端口来保存您的参考值,例如v_ref_value = IIF(v_counter = 1, col4, v_ref_value)。确保 v_counter 仍然是列表中的最后一个端口。
  3. 添加定义为col5
  4. IIF(col4=v_ref_value, 'Matching', 'Not matching')输出端口