0

我正在尝试做一项并行工作,其中我检查列的值,如果它匹配某个条件,则返回某个值,如果不匹配,它将检查另一个条件,如果它匹配该条件,它将执行抬头。如果条件将在参考链接或输出链接上,我不确定在哪里放置条件。

这是某种伪代码,希望它更清晰:

if (table1.colname = NULL OR table1.colname = '')
  then '999'
else 
  if table1.column = 0
     then do a lookup on table2.colname for '1' return table2.colname2
  else
     do a lookup on table2.colname for '2' return table2.colname2
  if value is not found then '999'

我对datastage有点陌生,因此非常感谢任何评论或想法。如果您需要其他说明,请告诉我。谢谢你。

4

1 回答 1

0

使用 Transformer 或 Filter 根据条件将记录拆分为三个链接

第一个链接:包含 Null 或空的记录 第二个链接:包含零值的记录 第三个链接:否则(剩余记录)

然后根据要求分别在第二个和第三个链接上进行查找然后汇集来自第一个链接的输出和来自查找的输出使用转换器将第四个条件应用于不匹配的记录

     Or

在变压器中创建一个新字段,其中写入条件如

If NullToEmpty(table1.column)='' then "DefaultValue"(确保你分配的值不应该在引用表中有匹配的记录)

否则,如果 table1.column = 0,则为“1”,否则如果 table1.column = 1,则为“2”,否则为“默认值”

然后使用 table2.colname2 对这个新字段进行查找,并在转换器中为查找未找到的记录分配“999”

于 2013-10-09T07:47:17.073 回答