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)