Le SQLite replace()
La fonction nous permet de remplacer une chaîne (ou une partie de chaîne) par une autre chaîne.
La façon dont cela fonctionne est que vous fournissez trois arguments; la chaîne qui contient la sous-chaîne à remplacer, la sous-chaîne à remplacer dans cette chaîne et la chaîne avec laquelle la remplacer.
Syntaxe
La syntaxe ressemble à ceci :
replace(X,Y,Z)
La fonction renvoie une chaîne formée en substituant la chaîne Z à chaque occurrence de la chaîne Y dans la chaîne X.
La séquence de classement BINARY est utilisée pour les comparaisons. Si Y est une chaîne vide, renvoie X inchangé. Si Z n'est pas initialement une chaîne, il est converti en chaîne UTF-8 avant le traitement.
Exemple
Voici un exemple simple pour illustrer.
SELECT replace('Red Sky', 'Red', 'Blue');
Résultat :
Blue Sky
Si le deuxième argument n'est pas trouvé dans le premier argument, rien n'est remplacé et la chaîne d'origine est renvoyée.
SELECT replace('Red Sky', 'Green', 'Blue');
Résultat :
Red Sky
Si le deuxième argument est une chaîne vide, rien n'est remplacé et la chaîne d'origine est renvoyée.
SELECT replace('Red Sky', '', 'Blue');
Résultat :
Red Sky
Mais on ne peut pas en dire autant du troisième argument. S'il s'agit d'une chaîne vide (et que le deuxième argument se trouve dans le premier argument), le deuxième argument sera supprimé de la chaîne.
SELECT replace('Red Sky', 'Red', '');
Résultat :
Sky
Cependant, cela ne se produira pas si le deuxième argument n'est pas trouvé dans la chaîne.
SELECT replace('Red Sky', 'Blue', '');
Résultat :
Red Sky
Remplacement par une non-chaîne
Si le troisième argument n'est pas une chaîne, il est converti en chaîne UTF-8 avant le traitement.
SELECT replace('Red Sky', 'Red', 8);
Résultat :
8 Sky
Exemple de base de données
Voici un exemple qui prend des données d'une table de base de données et remplace une chaîne/sous-chaîne donnée par une autre chaîne.
SELECT
ProductName,
replace(ProductName, 'Widget', 'Car')
FROM Products;
Résultat :
ProductName replace(ProductName, 'Widget', 'Car') -------------- ------------------------------------- Homer's Widget Homer's Car Peter's Widget Peter's Car Bob's Widget Bob's Car