Bonjour,
Je souhaiterais effectuer sous Talend une jointure entre 2 tables en tenant compte des valeurs null, exemple :
Code TABLE 1 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 1111;aaaa;42;bibi 1111;null;17;bobo
Code TABLE 2 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 1111;aaaa;42;titi 1111;bbbb;42;titi 1111;null;17;toto
Je veux effectuer la jointure sur les 3 premiers champs des 2 tables et récupérer les derniers champs.
On remarque sur la 2e ligne que la jointure s'est faite malgré la valeur null dans les 2 tables sur le champ n°2
Code RESULTAT SOUHAITE : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 1111;aaaa;42;bibi;titi 1111;null;17;bobo;toto 1111;bbbb;42;titi;null
Ce qui se traduirait en SQL par :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 select coalesce(A.champ1,B.champ1) as champ1, coalesce(A.champ2,B.champ2) as champ2, coalesce(A.champ3,B.champ3) as champ3, A.champ4 as champ4, B.champ4 as champ5 from table1 as A full outer join table2 as B on A.champ1 = B.champ1 and (A.champ2 = B.champ2 or (A.champ2 is null and B.champ2 is null)) and A.champ3 = B.champ3
Je ne vois pas comment traduire dans un tMap la condition "(A.champ2 = B.champ2 or (A.champ2 is null and B.champ2 is null))" pour la jointure.
Toute forme d'aide serait la bienvenue, merci d'avance.
ps : il s'agit de 2 sources différentes, je dois effectuer ce traitement via Talend et non mon SGBD (DB2).
Partager