Informatica中的案例陈述/解码功能

时间:2012-04-02 15:27:38

标签: decode case-statement informatica-powercenter informatica

有没有人可以帮我在Informatica PowerCenter Designer中编写案例陈述?我是Informatica的新手,基于我有限的经验,我觉得不支持案例陈述。有一个具有类似功能的解码功能,但我无法在语法上找到任何好的例子。

如果有人能给我一些关于如何在Informatica中使用case语句/解码函数的具体例子,我真的很感激。

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:18)

您是对的 - 没有CASE声明,但您可以使用DECODE来模拟它:

DECODE( TRUE
      , DECIMAL_PORT > 0, 'positive value'
      , DECIMAL_PORT < 0, 'negative value'
                        , 'zero' )

它等同于以下Transact-SQL CASE语句:

CASE
  WHEN DECIMAL_PORT > 0 THEN 'positive value'
  WHEN DECIMAL_PORT < 0 THEN 'negative value'
  ELSE 'zero'
END

以下是它的工作原理:

  • 第一个参数是硬编码的TRUE值,
  • 偶数参数(第2,第4等)是条件
  • 奇数参数(第3个,第5个等)是返回值
  • 最后一个参数是默认返回值
  • 评估第一个参数值的第一个条件(即第一个条件为true)决定了返回的值,
  • 如果不满足任何条件,则返回最后一个参数。

答案 1 :(得分:3)

另请参阅IIF()函数,该函数通常用于实现条件逻辑:

IIF(DECIMAL_PORT > 0, 'positive value', IIF(DECIMAL_PORT < 0 ,'negative value', 'zero'))