Je suis en train d'utiliser MSSQL 2008 pour remplacer les valeurs dans certaines colonnes. Ma requête actuelle est :
UPDATE table
SET name = replace(name, 'old', 'new')
J'aimerais savoir s'il est possible de ne remplacer 'old' par 'new' que lorsque 'old' n'est pas adjacent à d'autres caractères. C'est-à-dire : seulement lorsqu'il apparaît réellement comme 'old'. Cela garantirait que par exemple 'bold' ne devienne pas 'bnew'.
Actuellement, je récupère les résultats via JDBC, en divisant la chaîne au niveau du délimiteur (,) puis en vérifiant si la chaîne est égale à 'old'. Si c'est le cas, je veux la remplacer par 'new'. Cela prend beaucoup de temps pour récupérer tous les résultats et les renvoyer, donc si cela est possible en envoyant uniquement une instruction SQL contenant 'old' et 'new', ce serait génial !
Enregistrements où il devrait être remplacé :
- 'old , blabla blabla, bla'
- 'blabla, old, blabla'
- 'blabla, bla old, blabla'
- 'blabla, blabla, old'
- 'blabla, bla old bla'
Enregistrements où il ne devrait pas être remplacé :
- 'blaold, blabla'
- 'blabla, oldbla'