- Catégories :
Fonctions de chaîne et fonctions binaires (Correspondance/Comparaison)
REPLACE¶
Supprime toutes les occurrences d’une sous-chaîne spécifiée et les remplace éventuellement par une autre sous-chaîne.
Syntaxe¶
REPLACE( <subject> , <pattern> [ , <replacement> ] )
Arguments¶
subjectLe sujet est la chaîne dans laquelle effectuer les remplacements. En règle générale, il s’agit d’une colonne, mais il peut s’agir d’un littéral.
patternC’est la sous-chaîne que vous souhaitez remplacer. En règle générale, il s’agit d’un littéral, mais il peut s’agir d’une colonne ou d’une expression. Notez que ce n’est pas une « expression régulière » ; si vous souhaitez utiliser des expressions régulières pour rechercher un modèle, utilisez la fonction REGEXP_REPLACE .
replacementIl s’agit de la valeur utilisée en remplacement du
pattern. Si ceci est omis ou s’il s’agit d’une chaîne vide, la fonctionREPLACEsupprime simplement toutes les occurrences dupattern.
Renvoie¶
La valeur renvoyée est la chaîne une fois tous les remplacements terminés.
Notes sur l’utilisation¶
Si
replacementn’est pas spécifié,subjectest renvoyé avec toutes les occurrences depatternsupprimées.Si
replacementest spécifié,subjectest renvoyé avec toutes les occurrences depatternremplacées parreplacement.Si l’un des arguments est un NULL, le résultat est également un NULL.
Note
Seules les occurrences dans le subject d’origine sont prises en compte. Un pattern apparaissant dans le résultat n’est pas supprimé/remplacé.
Détails du classement¶
The collation specifications of all input arguments must be compatible.
Cette fonction ne fonctionne pas avec les spécifications de classement suivantes :
pi(insensible à la ponctuation).cs-ai(sensible à la casse, insensible aux accents)
Exemples¶
Remplacer la chaîne down par la chaîne up :
SELECT REPLACE('down', 'down', 'up');+-------------------------------+ | REPLACE('DOWN', 'DOWN', 'UP') | |-------------------------------| | up | +-------------------------------+
Remplacer la sous-chaîne Athens de la chaîne Vacation in Athens par la sous-chaîne Rome :
SELECT REPLACE('Vacation in Athens', 'Athens', 'Rome');+-------------------------------------------------+ | REPLACE('VACATION IN ATHENS', 'ATHENS', 'ROME') | |-------------------------------------------------| | Vacation in Rome | +-------------------------------------------------+
Remplacer la sous-chaîne bc de la chaîne abcd par une sous-chaîne vide :
SELECT REPLACE('abcd', 'bc');+-----------------------+ | REPLACE('ABCD', 'BC') | |-----------------------| | ad | +-----------------------+
Remplacez les valeurs d’une table par de nouvelles valeurs.
Créer et remplir une table :
CREATE OR REPLACE TABLE replace_example( subject VARCHAR(10), pattern VARCHAR(10), replacement VARCHAR(10)); INSERT INTO replace_example VALUES ('old car', 'old car', 'new car'), ('sad face', 'sad', 'happy'), ('snowman', 'snow', 'fire');Remplacez les chaînes d’une valeur par un remplacement spécifié :
SELECT subject, pattern, replacement, REPLACE(subject, pattern, replacement) AS new FROM replace_example ORDER BY subject;+----------+---------+-------------+------------+ | SUBJECT | PATTERN | REPLACEMENT | NEW | |----------+---------+-------------+------------| | old car | old car | new car | new car | | sad face | sad | happy | happy face | | snowman | snow | fire | fireman | +----------+---------+-------------+------------+La sortie montre les remplacements suivants :
La chaîne
old cara été remplacée par la chaînenew car.Dans la chaîne
sad face, la sous-chaînesada été remplacée par la sous-chaînehappypour créer la nouvelle chaînehappy face.Dans la chaîne
snowman, la sous-chaînesnowa été remplacée par la sous-chaînefirepour créer la nouvelle chaînefireman.