你能帮助解决错误的信息结果吗?



你好,我是informatica的新手,并试图编写解码或如果,其中只有一个值进入输出端口…一个不相等的值将进入输出端口…我确信这个值是不相等的……所以我的解码不起作用,我试图做一个嵌套的if不起作用…解码如下…解码(真Testopen = testdoor1, '打开','关闭',Testopen = testdoor2, '打开','关闭',Testopen = testdoor3, 'open', 'close')

虽然我知道testdoor3是唯一一个等于testopen..Testdoor3已被填充…我对testdoor2进行了一次测试(解码中只有一个表达式,它仍然用teststopen2填充testopen), testdoor2和testdoor1有null

然后尝试使用iif,但在第一个

之后卡住了。
iif (testopen = testdoor1, 'equal','noequal')

但是我不知道如何用3个if语句做到这一点。谢谢你的帮助。

decode (true
testopen = testdoor1, 'open', 'close',
testopen = testdoor2, 'open', 'close',
testopen  = testdoor3, 'open', 'close')

或if (testopen = testdoor1, 'equal','noequal')感谢您的帮助!

下面是Informatica文档中DECODE的语法

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

我建议你加上你的输入值和期望的输出是什么。

通过查看您的代码,似乎您没有为预期的位置/参数提供正确的输入。假设端口有以下值

  1. testopen = '是的'

  2. testdoor1 = '是的'

  3. testdoor2 ="不">

  4. testdoor3 = '是的'

让我们看看用端口的实际值替换解码后,并将其与语法进行比较。注意(second_search),其中您没有比较端口,而只是比较值"close"。这就是为什么你的代码表现得很奇怪。

注意:注意你原来的文章中"true"后面缺少逗号

decode(true,
'Yes' = 'No' (first_search), 'open' (first_result), 'close' (second_search),
'Yes' = 'Yes' (second_result), 'open' (third_search), 'close' (third_result),
'Yes' = 'No' (forth_search), 'open' (forth_result), 'close'(default))

尝试使用类似于下面的代码。这也是来自Informatica文档。

DECODE( TRUE,
Var1 = 22, 'Variable 1 was 22!',
Var2 = 49, 'Variable 2 was 49!',
Var1 < 23, 'Variable 1 was less than 23.',
Var2 > 30, 'Variable 2 was more than 30.',
'Variables were out of desired ranges.')

DECODE接受一个值、一对搜索值和结果值,还有一个可选的默认值。

你似乎在使用三元组而不是参数对。你实际写的是:

decode (true
testopen = testdoor1, 'open', 
'close',  testopen = testdoor2, 
'open', 'close',
testopen  = testdoor3,
'open', 'close')

最新更新