Fonction REPLACE sensible à la casse
Je voudrais remplacer dans le corps du texte les caractères accentués par leur équivalent HTML. Or, la fonction REPLACE ne semble pas sensible à la casse.
SELECT REPLACE('éÉ','é','é') me donne éé
et non pas éÉ
Merci de m'aider !
ce n'est pas le REPLACE qui est insensible à la casse
Citation:
Envoyé par
bivort
J'ai trouvé ailleurs sur le forum :
Code:
SELECT REPLACE('Éé','É' COLLATE SQL_Latin1_General_Cp1_CS_AS,'É')
Il faut ajouter COLLATE SQL_Latin1_General_Cp1_CS_AS après la lettre à remplacer.
Pour être plus précis, ce n'est pas le REPLACE qui est insensible à la casse mais la BDD (probablement en classement ...CI..., CI pour Case Insensitive)
Par exemple, avec une BDD en French_CS_AS, on aura le problème inverse : le replace sera insensible à la casse.
Dans ce cas, si l'on souhaite qu'un mot soit remplacé quelque soit la casse, il faudra taper le
Code:
REPLACE(TEXTE, 'ancien' COLLATE SQL_Latin1_General_Cp1_CI_AS, 'nouveau')