解码函数在informatica的更新标志端口中做了什么?

时间:2013-03-26 06:57:24

标签: decode data-warehouse etl informatica-powercenter informatica

我是Informatica的新手,想问一个关于infa端口的问题。我找到了一个示例,它展示了如何在表达式转换中创建更新标志以更新数据。 v_UPDATE_FLAG端口中的代码如下所示:

IIF(NOT ISNULL(PREV_ITEM_KEY)
AND
(
DECODE(BONUS_FLAG,PREV_BONUS_FLAG,1,0) = 0 
OR
DECODE(DISCOUNT,PREV_DISCOUNT,1,0) = 0 
OR
DECODE(PRICE,PREV_PRICE,1,0) = 0 
),'TRUE','FALSE')

你能解释一下这是做什么的吗? DECODE在这里做了什么?

DECODE(BONUS_FLAG,PREV_BONUS_FLAG,1,0) = 0 

1 个答案:

答案 0 :(得分:2)

DECODE语法:

DECODE (
  value
, first_search  , first_result 
, second_search , second_result
, ...           , ...
                , default
)

value参数与search参数进行比较,并在找到第一个匹配项时返回相应的result参数。如果没有匹配项,则返回default参数。

DECODE(BONUS_FLAG,PREV_BONUS_FLAG,1,0) = 0表示BONUS_FLAGPREV_BONUS_FLAG不相等。

PREV_ITEM_KEY不为NULL并且BONUS_FLAGDISCOUNTPRICE中的任何属性发生更改时,整个表达式标记UPDATE的行(先前值与当前值)。