Partager via


REPLACE (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric

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

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 doit pas dépasser le nombre maximal d’octets tenant sur une page. Si string_pattern est une chaîne vide (’’), string_expression est retourné sans modification.

string_replacement
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 de 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’effectuer explicitement le transtypage de string_expression vers un type de données de valeur de grande taille.

Notes

REPLACE effectue des comparaisons basées sur le classement de l'entrée. Pour effectuer une comparaison dans un classement donné, vous pouvez utiliser COLLATE pour appliquer à l’entrée un classement explicite.

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 abcdefghicde par xxx.

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

Voici le jeu de 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 le jeu de résultats.

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

L’exemple suivant calcule le nombre d’espaces dans une phrase à l’aide de la fonction REPLACE. Tout d’abord, il calcule la longueur de la phrase avec la fonction LEN. Il remplace ensuite les caractères « » par « » avec REPLACE. Après ce processus, il calcule à nouveau la longueur de la phrase. La différence qui en résulte est le nombre d’espaces dans la phrase.

DECLARE @STR NVARCHAR(100), @LEN1 INT, @LEN2 INT;
SET @STR = N'This is a sentence with spaces in it.';
SET @LEN1 = LEN(@STR);
SET @STR = REPLACE(@STR, N' ', N'');
SET @LEN2 = LEN(@STR);
SELECT N'Number of spaces in the string: ' + CONVERT(NVARCHAR(20), @LEN1 - @LEN2);

GO  

Voici le jeu de résultats.

------------  
Number of spaces in the sentence: 7  

(1 row(s) affected)  

Voir aussi

CONCAT (Transact-SQL)
CONCAT_WS (Transact-SQL)
FORMATMESSAGE (Transact-SQL)
QUOTENAME (Transact-SQL)
REVERSE (Transact-SQL)
STRING_AGG (Transact-SQL)
STRING_ESCAPE (Transact-SQL)
STUFF (Transact-SQL)
TRANSLATE (Transact-SQL)
Types de données (Transact-SQL)
Fonctions de chaîne (Transact-SQL)