REPLACE
Remplacer une chaîne de caractères par une autre
Fonction :
La fonction scalaire SQL : REPLACE permet de remplacer une chaine de caractères par une autre dans une autre chaîne de caractères donnée.
Syntaxe :
L’instruction REPLACE dispose de 3 paramètres :
- La chaine à modifier ou le champ contenant la chaine à modifier.
C’est cette chaine qui sera analysée, modifiée, puis retournée par la fonction REPLACE. - La chaine à remplacer ou le champ contenant la chaine à remplacer.
C’est la chaine de caractères à rechercher et à remplacer dans la chaine à modifier. - La chaine de remplacement.
C’est la chaine de caractères qui remplacera la chaine chaine à remplacer.
Ce paramètre est facultatif et s’il n’est pas utilisé la fonction ne modifiera pas la chaine à modifier.
REPLACE(chaine à modifier, chaine à remplacer, chaine de remplacement)
Exemples :
Exemple 1 :
SELECT REPLACE(‘LA BOITE A OUTI‘, ‘OUTI‘, ‘OUT-i‘) FROM SYSIBM.SYSDUMMY1;
Retourne ‘LA BOITE A OUT-i‘ alors que la valeur initiale était ‘LA BOITE A OUTI‘.
‘OUTI‘ a bien été remplacé par ‘OUT-i‘.
Exemple 2 :
Exemple avec des champs lus dans un table.
On utilise une CTE (COMMON TABLE EXPRESSIONS) pour créer le jeu de test.
WITH CTE_REPLACE AS
(
SELECT ‘LA BOITE A OUT-I’ AS CHAINE_A_MODIFIER,
‘OUT-I’ AS CHAINE_A_REMPLACER,
‘IBM-i’ AS CHAINE_DE_REMPLACEMENT
FROM SYSIBM.SYSDUMMY1
)
SELECT CHAINE_A_MODIFIER,
CHAINE_A_REMPLACER,
CHAINE_DE_REMPLACEMENT,
REPLACE(CHAINE_A_MODIFIER, CHAINE_A_REMPLACER, CHAINE_DE_REMPLACEMENT) AS RESULTAT_REPLACE
FROM CTE_REPLACE;
Résultats :
CHAINE_A_MODIFIER LA BOITE A OUT-I
CHAINE_A_REMPLACER OUT-I
CHAINE_DE_REMPLACEMENT IBM-i
RESULTAT_REPLACE LA BOITE A IBM-i
Exemple 3 :
Exemple avec des champs lus dans un table.
On utilise une CTE (COMMON TABLE EXPRESSIONS) pour créer le jeu de test.
WITH CTE_REPLACE AS
(
SELECT ‘LA BOITE A OUT-I’ AS CHAINE_A_MODIFIER,
‘A’ AS CHAINE_A_REMPLACER,
‘@’ AS CHAINE_DE_REMPLACEMENT
FROM SYSIBM.SYSDUMMY1
)
SELECT CHAINE_A_MODIFIER,
CHAINE_A_REMPLACER,
CHAINE_DE_REMPLACEMENT,
REPLACE(CHAINE_A_MODIFIER, CHAINE_A_REMPLACER, CHAINE_DE_REMPLACEMENT) AS RESULTAT_REPLACE
FROM CTE_REPLACE;
Résultats :
CHAINE_A_MODIFIER LA BOITE A OUT-I
CHAINE_A_REMPLACER A
CHAINE_DE_REMPLACEMENT @
RESULTAT_REPLACE L@ BOITE @ OUT-i