3

我是 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 
4

1 回答 1

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_FLAG,整个表达式为 UPDATE 标记一行。DISCOUNTPRICE

于 2013-03-26T08:20:21.723 回答