12

谁能帮我在 Informatica PowerCenter Designer 中编写案例陈述?我对 Informatica 相当陌生,根据我有限的经验,我觉得不支持案例陈述。有一个具有类似功能的解码函数,但我找不到任何关于语法的好例子。

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

非常感谢您的帮助!

4

2 回答 2

20

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

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

它等效于以下 Transact-SQLCASE语句:

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

以下是它的工作原理:

  • 第一个参数是硬编码TRUE值,
  • 偶数参数(第 2、第 4 等)是条件
  • 奇数参数(第 3 个、第 5 个等)是返回值
  • 最后一个参数是默认返回值
  • 计算结果为第一个参数值的第一个条件(即第一个为真的条件)确定返回的值,
  • 如果不满足任何条件,则返回最后一个参数。
于 2012-04-02T16:14:22.300 回答
3

还可以查看经常用于实现条件逻辑的 IIF() 函数:

IIF(DECIMAL_PORT > 0, 'positive value', IIF(DECIMAL_PORT < 0 ,'negative value', 'zero'))
于 2012-04-02T17:47:07.777 回答