检查是否满足条件然后进行查找

时间:2013-06-14 01:32:46

标签: sql if-statement conditional-statements lookup datastage

我正在尝试做一个并行工作,其中我检查列的值,如果它匹配某个条件,它返回一个特定值,如果不是,它将检查另一个条件,如果它匹配该条件它将进行查找。 如果条件在参考链接或输出链接上,我不确定将条件放在何处。

这是一种有希望使得更清晰的伪代码:

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'

我对数据存档有点新意,因此非常感谢任何评论或想法。 如果您需要其他说明,请告诉我。 谢谢。

1 个答案:

答案 0 :(得分:0)

使用Transformer或Filter根据条件

将记录拆分为三个链接

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

然后根据要求单独查看第二和第三个链接 然后汇总第一个链接的输出和查找的输出 使用变换器为非匹配记录应用第四个条件

     Or

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

如果NullToEmpty(table1.column)=''则“DefaultValue”(确保分配的值不应该在引用表中具有匹配的记录)

否则如果table1.column = 0 那么“1” 否则如果table1.column = 1 那么“2” 否则“Defaultvalue”

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