REPLACE (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

Sostituisce tutte le occorrenze di un valore stringa specificato con un altro valore stringa.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

REPLACE ( string_expression , string_pattern , string_replacement )  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

Argomenti

string_expression
Stringa expression da cercare. Il tipo di dati di string_expression può essere character o binary.

string_pattern
Sottostringa da individuare. Il tipo di dati di string_pattern può essere character o binary. string_pattern non deve superare il numero massimo di byte che rientra in una pagina. Se string_pattern è una stringa vuota (''), string_expression viene restituito invariato.

string_replacement
Stringa di sostituzione. Il tipo di dati di string_replacement può essere character o binary.

Tipi restituiti

Restituisce nvarchar se uno degli argomenti di input è di tipo nvarchar. In caso contrario REPLACE restituisce varchar.

Viene restituito NULL se un argomento qualsiasi è NULL.

Se string_expression non è di tipo varchar(max) o nvarchar(max), REPLACE tronca il valore restituito a 8000 byte. Per restituire valori maggiori di 8000 byte è necessario eseguire il cast esplicito di string_expression a un tipo di dati appropriato per valori di grandi dimensioni.

Osservazioni

Tramite REPLACE vengono effettuati confronti in base alle regole di confronto dell'input. Per eseguire un confronto in base a regole di confronto specifiche, è possibile usare COLLATE per applicare regole di confronto esplicite all'input.

0x0000 (char(0) ) è un carattere non definito nelle regole di confronto di Windows e non può essere incluso in REPLACE.

Esempi

Nell'esempio seguente la stringa cde in abcdefghicde viene sostituita da xxx.

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

Questo è il set di risultati.

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

Nell'esempio seguente viene utilizzata la funzione COLLATE.

SELECT REPLACE('This is a Test'  COLLATE Latin1_General_BIN,  
'Test', 'desk' );  
GO  

Questo è il set di risultati.

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

Vedere anche

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)
Tipi di dati (Transact-SQL)
Funzioni per i valori stringa (Transact-SQL)