Impossible de résoudre le conflit de classement entre « SQL_Latin1_General_CP1_CI_AS » et « French_CI_AS » dans l’opération equal to

Cette erreur viens d’un souci de classement entre deux champs ce qui rend un simple égale impossible

La solution est assez simple, il suffit d’ajouter COLLATE FRENCH_CI_AS juste après la condition posant souci.
Voir les trois exemple ci-dessous

SELECT * FROM table1 LEFT OUTER JOIN table2
ON table1.champ1 = table2.champ2 COLLATE FRENCH_CI_AS

et

SELECT * FROM table1
WHERE table1.champ1 COLLATE FRENCH_CI_AS in (select…)

et

SELECT *, (SELECT TOP 1 id FROM table2 as t2 WHERE t2.valeur = t1.valeur COLLATE FRENCH_CI_AS ORDER BY id DESC
FROM table1 as t1

Source : https://www.infraworld.fr/2011/01/06/conflit-entre-sql_latin1_general_cp1_ci_as-et-french_ci_as/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *