我是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
答案 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_FLAG
和PREV_BONUS_FLAG
不相等。
当PREV_ITEM_KEY
不为NULL并且BONUS_FLAG
,DISCOUNT
或PRICE
中的任何属性发生更改时,整个表达式标记UPDATE的行(先前值与当前值)。