REPLACE (Transact-SQL)

Remplace toutes les occurrences d'une valeur de type chaîne spécifiée par une autre valeur de type chaîne.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

REPLACE ( string_expression , string_pattern , string_replacement )

Arguments

  • string_expression
    Il s'agit de l'expression de chaîne dans laquelle effectuer la recherche. string_expression peut être de type binaire ou caractère.

  • string_pattern
    Il s'agit de la sous-chaîne à rechercher. string_pattern peut être de type binaire ou caractère. string_pattern ne peut pas être une chaîne vide ('').

  • string_remplacement
    Il s'agit de l'expression de chaîne de remplacement. string_replacement peut être de type binaire ou caractère.

Types de retour

Retourne nvarchar si l'un des arguments d'entrée est de type nvarchar ; dans le cas contraire, REPLACE retourne varchar.

Retourne NULL si n'importe lequel des arguments a pour valeur NULL.

Si string_expression n'est pas du type varchar(max) ou nvarchar(max),REPLACE tronque la valeur de retour à 8 000 octets. Pour retourner des valeurs supérieures à 8 000 octets, il est nécessaire d'attribuer de manière explicite à string_expression un type de données de valeur élevée.

Notes

REPLACE effectue des comparaisons basées sur le classement de l'entrée. Pour réaliser une comparaison dans un classement spécifique, vous pouvez utiliser COLLATE afin d'appliquer un classement explicite à l'entrée.

0x0000 (char(0)) est un caractère non défini dans les classements Windows et ne peut pas être inclus dans REPLACE.

Exemples

L'exemple suivant remplace la chaîne cde dans abcdefghi par xxx.

SELECT REPLACE('abcdefghicde','cde','xxx');
GO

Voici l'ensemble des résultats.

------------
abxxxfghixxx
(1 row(s) affected)

L'exemple suivant utilise la fonction COLLATE.

SELECT    REPLACE('Das ist ein Test'  COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO

Voici l'ensemble des résultats.

------------
Das ist ein desk
(1 row(s) affected)