【发布时间】:2016-10-27 21:58:09
【问题描述】:
我们正在尝试使用 Talend DI 工具映射数据。其中,我们必须捕获与条件运算符相关的转换。(由于工具的限制,它不允许使用 if-then-else 语法,而是支持条件运算符。
样本数据:
我正在尝试将此表达式写入 talend tmap 组件。如何使用三元运算符将此表达式写入 tmap 组件表达式构建器。另外,我必须检查空值。
case when [TCode]='(00) PRE-PAID' then '00'when[TCode]='(01) C.O.D.' then '01'when[TCode]='(02) EOM' then '02'when[TCode]='10' then '(10) NET 10 DAYS'when[TCode]='15' then '(15) NET 15 DAYS'when[TCode]='21' then '(21) 2 % 30 NET 31'when[TCode]='23' then '(23) 2% NET 30 DAYS'when[TCode]='3' then '(3) CHECK'when[TCode]='30' then '(30) NET 30 DAYS' else [TCode]end as TCode
试过这个条件运算符:
"(00) PRE-PAID".equals(row.tCode) ?"00" :
"(01) C.O.D".equals(row.tCode) ?"01" :
"(02) EOM".equals(row.tCode) ? "02" :
"Unknown"
尝试上述条件运算符时出错:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
XML_API_tXMLMap_1 cannot be resolved to a type
XML_API_tXMLMap_1 cannot be resolved to a type
Syntax error on token ""(00) PRE-PAID"", delete this token
提前致谢!
【问题讨论】:
-
你能发布完整的编译错误吗?
-
只是一个条件表达式是编译不了的,需要赋值或者返回结果。
-
@Kerry 这里是错误的更多描述:paste.ofcode.org/39v84vUZR6r9AwQnUS52M6X
-
@JornVernee 您需要分配或返回结果吗?如?
-
嗯...
String result = <conditional expr>或return <conditional expr>。
标签: java c++ conditional talend tmap