SQLite
 sql >> Base de données >  >> RDS >> SQLite

Comment remplacer () fonctionne dans SQLite

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