Sql 若列包含特定的字符串,那个么结果为空,否则为另一列,如何在informatica中应用此表达式转换?
我尝试了以下函数和代码,但无法返回列值 列名:Sql 若列包含特定的字符串,那个么结果为空,否则为另一列,如何在informatica中应用此表达式转换?,sql,informatica,informatica-powercenter,Sql,Informatica,Informatica Powercenter,我尝试了以下函数和代码,但无法返回列值 列名: CPOP\u分数\u NB,填充物\u COL\u 00010 DECODE( TRUE , FILLER_COL_00010= '?', ' ' , FILLER_COL_00010 = ' ', CPOP_SCORE_NB , 'NA' ) IIF(FILLER_COL_00010 = '?', ' ' ,CPOP_SCORE_NB) 现在我想返回CPOP\u SC
CPOP\u分数\u NB,填充物\u COL\u 00010
DECODE( TRUE
, FILLER_COL_00010= '?', ' '
, FILLER_COL_00010 = ' ', CPOP_SCORE_NB
, 'NA' )
IIF(FILLER_COL_00010 = '?', ' ' ,CPOP_SCORE_NB)
现在我想返回CPOP\u SCORE\u NB
列值,如果FILLER\u COL\u 00010
列值没有?
我是informatica的新手,有人能帮我解决这个问题吗
如果FILLER\u COL\u 00010列值没有“?”,我想返回CPOP\u SCORE\u NB列值
在SQL中,您可以编写:
(case when FILLER_COL_00010 not like '%?%' then CPOP_SCORE_NB end)
您可以在您的案例中使用REG_MATCH函数
IIF(REG\u MATCH(FILLER\u COL\u 00010,..*)=FALSE,CPOP\u SCORE\u NB)
我为您的语句提供了简单的解决方案-如果FILLER\u COL\u 00010列值没有,我想返回CPOP\u SCORE\u NB列值。
IIF(INSTR(FILLER_COL_00010,'?')=0, CPOP_SCORE_NB)
INSTR
将在FILLER\u COL\u 00010中返回的位置。谢谢大家,我尝试了所有选项。但下面的内容对我很有用:
IIF(FILLER_COL_00010='?',NULL,CPOP_SCORE_NB)准确地说,但是如何在informatica中应用相同的方法并返回else条件的列名不幸的是,informatica没有'like',因此您可以使用INSTR
。我只想注意,这个问题被标记为SQL,并且like
在我所知道的每个数据库中都受到支持。