Partager via


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.

S'applique à : SQL Server (SQL Server 2008 via la version actuelle, Base de données SQL Windows Azure (version initiale via la version actuelle.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

REPLACE ( string_expression , string_pattern , string_replacement )

Arguments

  • string_expression
    Expression de chaîne à rechercher. string_expression peut être de type de données binaire ou caractère.

  • string_pattern
    Sous-chaîne à rechercher. string_pattern peut être de type de données binaire ou caractère. string_pattern ne peut pas être une chaîne vide ('') et ne doit pas dépasser le nombre maximal d'octets tenant sur une page.

  • string_remplacement
    Chaîne de remplacement. string_replacement peut être de type de données binaire ou caractère.

Types de retour

Retourne nvarchar si l'un des arguments d'entrée est de type de données 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 indé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('This is a Test'  COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO

Voici l'ensemble des résultats.

------------
This is a desk
(1 row(s) affected)

Voir aussi

Référence

Types de données (Transact-SQL)

Fonctions de chaîne (Transact-SQL)