UPDATE une table SQL basée sur l'égalité de deux colonnes avec deux colonnes d'une autre table

J'utilise SQL Server 2012 et j'ai ce problème.

Je veux mettre à jour le tableau 1, colonne 3 (avec beaucoup de lignes dupliquées) avec les valeurs du tableau 2, colonne 3 (c3), où Table1.c1 = Table2.c1 et Table1.c2 = Table2.c2 (Table2 contient des explications pour chaque row, et Table1 a beaucoup plus de lignes qui sont aussi des duplicates).

Voici un exemple

J'ai essayé cette requête, mais cela ne fonctionne pas:

UPDATE T1 SET c3 = T2.c3 FROM Table1 T1 INNER JOIN Table2 T2 ON T1.c1 = T2.c1 AND T1.c2 = T2.c2 

MODIFIER:

La requête ci-dessus est OK! J'avais des strings invisibles dans mes colonnes. Merci Xiaoguang Qiao

Je n'ai vu aucun problème avec la requête elle-même. Les premières données de vérification seront mises à jour en sélectionnant

 SELECT T1.C3, T2.C3 FROM Table1 T1 INNER JOIN Table2 T2 ON T1.c1 = T2.c1 AND T1.c2 = T2.c2 

Si elle renvoie 0 lignes, je pense que vous devez vérifier C1 et C2 un par un. Peut-être qu'il y a des espaces invisibles dans la colonne C1 ou C2. Essayez la requête suivante

 SELECT T1.C1, T2.C1, CASE WHEN T1.C1 = T2.C1 THEN 'Same' ELSE NULL END AS "Same C1", T1.C2, T2.C2, CASE WHEN T1.C2 = T2.C2 THEN 'Same' ELSE NULL END AS "Same C2" FROM Table1 AS T1, Table2 T2