0
votes

Remplacer plusieurs chaînes avec le même remplacement de chaîne

Je cherche partout pour cela et je ne pense pas que le remplacement imbriqué est la réponse. J'ai une liste d'adresse email que j'ai besoin de garder unique, mais j'ai besoin de les faire tout faux pour les tests. Donc, mon idée était de simplement remplacer le ".com", ".net", ".org" et ainsi de suite à '.mydomain.com'. Mais il y a beaucoup d'extrémités au total.

J'ai réalisé que je pouvais simplement supprimer le @ et ajouter '@ mydomain.com' à la fin, mais maintenant, je veux aussi comprendre comment résoudre ce problème particulier.

au lieu de faire: xxx

pour chaque cas ".com", ".net", ".org" ...... / P>

Y a-t-il un moyen de dire, remplacez tous ces éléments ('.com', '.net', '.org') avec '.MyDomain.com' dans une déclaration?

quelque chose comme ça. xxx


0 commentaires

4 Réponses :


1
votes

Après le Kiss Principe, il suffit d'exécuter 3 requêtes distinctes.

update Customer set email = replace(email, '.com', '.mydomain.com') where email not like '%.mydomain.com%';
update Customer set email = replace(email, '.net', '.mydomain.com') where email not like '%.mydomain.com%';
update Customer set email = replace(email, '.org', '.mydomain.com') where email not like '%.mydomain.com%';


2 commentaires

J'espérais qu'il y avait une fonction simple que je n'étais pas au courant, mais comme il n'y a pas que je suis d'accord avec cela. Et en utilisant Excel, il est facile de créer un script de mise à jour pour la portée des 100 dernières fins. Merci!


Np. Voir accepter les réponses



0
votes

Je pense que quelque chose comme ça devrait fonctionner. xxx

peut charindex peut être remplacé par n'importe quelle fonction qui vérifie si une chaîne contient une sous-chaîne.


0 commentaires

0
votes

Une autre solution consiste à avoir des instructions de remplacement imbriquées:

update Customer set email = replace(replace(email, '.com', '.mydomain.com'), '.net', '.mydomain.com')


1 commentaires

Devis de l'OP: "... Je ne pense pas que Remplacer est la réponse."



0
votes

Vous pouvez utiliser une mise à jour à partir de pour rejoindre une table dérivée des TLD que vous souhaitez remplacer. (Vous pouvez également rejoindre une table "réelle" avec le TLDS si vous en avez un.) xxx

dB <> violon

Il ne résoudra pas le problème que cela, si une sous-chaîne correspondant à un TLD est dans la chaîne ailleurs comme à la fin, Cette sous-chaîne est également remplacée. Mais ce n'est probablement pas un problème ici.


0 commentaires