[SQL SERVER] fonction replace

Fermé
dev37 - 7 févr. 2008 à 11:49
 weezy - 10 août 2012 à 15:30
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

4 réponses

ludo6577 Messages postés 9 Date d'inscription vendredi 20 janvier 2012 Statut Membre Dernière intervention 15 octobre 2013 13
20 janv. 2012 à 16:04
Y'a bien une méthode en les imbricants

SELECT REPLACE(REPLACE(email, "é", "e"), "è", "e")
13
Merci ludo c'est exactement ce qu'il me fallait. Je ne savais pas que je pouvais les imbriquer!
0
ludo6577 Messages postés 9 Date d'inscription vendredi 20 janvier 2012 Statut Membre Dernière intervention 15 octobre 2013 13
20 janv. 2012 à 16:15
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
0
Merci pour cette réponse mais je dois faire ce replace en SQL
0
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
0
pas mal !
0
dudu134 Messages postés 2828 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 24 janvier 2009 608
7 févr. 2008 à 11:57
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
-4