我的案例陈述如下
当col1喜欢'%other%'然后'否'其他col5以col5结尾
就像在SQL中一样,我需要使用不同的列实现case语句,并使用“'其他”字样的通配符检查。所有在talend如何做到这一点?
答案 0 :(得分:1)
您的问题不明确,没有任何截图或解释。 我假设你有一些输入组件,比如带有行的tOracleInput,在模式中有多个列。我建议使用tMap组件来操作模式的内容,尤其是表达式构建器。
P.S。我个人更喜欢使用tJavaFlex进行列验证/操作,这样代码更具可读性,但它是更先进的技术。
答案 1 :(得分:0)
如果没有动态创建列,您可以在 tMap 中添加一个案例。
因此,对于新的布尔列,您可以创建表达式:
row1.mycolumn1.toLowerCase().contains("other") ? new Boolean.true : new Boolean.false;
布尔字段将保存检查值。
编辑
由于此处不需要新的布尔列,因此您的特定要求如下所示:
row1.product_code.toLowerCase().contains("other") ? "No data" : row1.product_code;
答案 2 :(得分:0)
请按以下方式查看输入
col1 col2 col3 col4 col5
---- ---- ---- ---- ----
aaa aaa aaa aaa aaa
otherbbb bbb bbb bbb bbb
ccc ccc ccc ccc ccc
在tMap中,您必须在表达式构建器中对col5
具有以下语句 input.col1.contains("other")?"No":input.col5
然后输出如下
col1 col2 col3 col4 col5
---- ---- ---- ---- ----
aaa aaa aaa aaa没有
otherbbb bbb bbb bbb没有
ccc ccc ccc ccc ccc