英文:
Talend, If Statement with subconditions
问题
我正在处理一个Talend作业,在这个作业中,我需要根据另一列的信息向一列中插入信息。例如,目标是在"Code_direction"等于"D45"且"Fonction_libelle"不等于"CHEF DE SERVICE"或"Fonction_Libelle"不等于"CHEF DE SERVICE ADJOINT"时,在"Saisie_manuelle_O_pour_Oui_sinon_rien"中插入"O"。
目前我尝试了以下代码:
```java
if ("D45".equals(input_row.Code_direction) && (!("CHEF DE SERVICE".equals(input_row.Fonction_libelle) && !"CHEF DE SERVICE ADJOINT".equals(input_row.Fonction_libelle)))) {
output_row.Saisie_manuelle_O_pour_Oui_sinon_rien = "O";}
它可以工作,但不是100%准确。它会在"Code_direction"等于"D45"时,无论"Fonction_libelle"是否等于"CHEF DE SERVICE"或"CHEF DE SERVICE ADJOINT",都会将"O"放在所有地方...
我认为我做错了一些事情,但我无法看到是什么...
任何帮助将不胜感激!
<details>
<summary>英文:</summary>
I'm working on a Talend job where i need to insert informations in a column depending of informations to another column. For example, the target here is to insert "O" into "Saisie_manuelle_O_pour_Oui_sinon_rien" if "Code_direction" equals "D45" and "Fonction_libelle" not equals CHEF DE SERVICE or "Fonction_Libelle" not equals CHEF DE SERVICE ADJOINT.
For the moment i tried this :
if ("D45".equals(input_row.Code_direction) && (!("CHEF DE SERVICE".equals(input_row.Fonction_libelle) && !"CHEF DE SERVICE ADJOINT".equals(input_row.Fonction_libelle))) {
output_row.Saisie_manuelle_O_pour_Oui_sinon_rien = "O";}
It work but not 100%. It put "O" everywhere where "Code_direction" = "D45" even if Fonction_libelle not equal CHEF DE SERVICE OR CHEF DE SERVICE ADJOINT...
I think i did something wrong but i'm not able to see what...
Any help will be very appreciated !
</details>
# 答案1
**得分**: 0
不要紧,暂时我会做其他事情...我可以通过在此之后添加另一个if语句来实现我想要的,例如:
```java
if ("D45".equals(input_row.Code_direction)) {
output_row.Saisie_manuelle_O_pour_Oui_sinon_rien = "O";
}
if ("CHEF DE SERVICE".equals(input_row.Fonction_libelle) || "CHEF DE SERVICE ADJOINT".equals(input_row.Fonction_libelle)) {
output_row.Saisie_manuelle_O_pour_Oui_sinon_rien = "";
}
这不太规范,但它能够正常工作!我会继续这样做暂时。
英文:
Never mind, for the moment i will do something else... I can do what i want by doing an other if statement after it, for example :
if ("D45".equals(input_row.Code_direction)) {
output_row.Saisie_manuelle_O_pour_Oui_sinon_rien = "O";
}
if ("CHEF DE SERVICE".equals(input_row.Fonction_libelle) || "CHEF DE SERVICE ADJOINT".equals(input_row.Fonction_libelle)) {
output_row.Saisie_manuelle_O_pour_Oui_sinon_rien = "";
}
This is not very clean but it's working ! I'll continue like this for the moment.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论