[SQL SERVER] fonction replace

Bonjour,

Je souhaite remplacer les accents des adresse emails dans une base de donnée en une seule fois.
La fonction replace marche bien mais il faut le faire caractère par caractère
update table set email = replace(email,'é','e')
idem pour les autres caractères

Est il possible de faire cela en un seul ordre sql du genre
update table set email = replace(email,'é:è:ê','e')

merci
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Y'a bien une méthode en les imbricants

    SELECT REPLACE(REPLACE(email, "é", "e"), "è", "e")
    1. Merci ludo c'est exactement ce qu'il me fallait. Je ne savais pas que je pouvais les imbriquer!
    2. De rien moi non plus je ne savais pas mais sa paraissait possible vu que le premier paramètre est un champ et que la fonction renvoi une valeur
  2. Merci pour cette réponse mais je dois faire ce replace en SQL
    1. La requête est la suivante :

      Update matable Set monchamp=replace(monchamp,'yyy','xxx')

      la chaîne yyy contenue dans monchamp sera remplacé par xxx
  3. Bonjour,

    essaye avec ceci :
    // code pour enlever les accents et les majuscules pour adresse mail
    $nom1 = $nom;
    $prenom1 =$prenom;
    $chaine = $prenom1.'.'.$nom1; function ote_accent($str){$ch = strtr($str,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿAZERTYUIOPQSDFGHJKLMWXCVBN','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyyazertyuiopqsdfghjklmwxcvbn');return $ch;}
    echo "<input type=hidden name=chaine value=";echo ote_accent($chaine); echo">";
    //fin code pour enlever les accents et les majuscules pour adresse mail