REPLACE (Transact-SQL)
Sostituisce tutte le occorrenze di un valore stringa specificato con un altro valore stringa.
Convenzioni della sintassi Transact-SQL
Sintassi
REPLACE ( string_expression , string_pattern , string_replacement )
Argomenti
string_expression
Stringa expression da cercare. Il tipo di dati string_expression può essere character o binary.string_pattern
Sottostringa da individuare. Il tipo di dati string_pattern può essere character o binary. string_pattern non può essere una stringa vuota (") e non deve superare il numero massimo di byte che rientra in una pagina.string_replacement
Stringa di sostituzione. Il tipo di dati string_replacement può essere character o binary.
Tipi restituiti
Viene restituito nvarchar se il tipo di dati di uno degli argomenti di input è nvarchar. In caso contrario, tramite REPLACE viene restituito varchar.
Viene restituito NULL se un argomento qualsiasi è NULL.
Se string_expression non è di tipo varchar(max) o nvarchar(max),, tramite REPLACE il valore restituito viene troncato a 8.000 byte. Per restituire valori maggiori di 8.000 byte, è necessario eseguire il cast esplicito di string_expression a un tipo di dati per valori di grandi dimensioni.
Osservazioni
Tramite REPLACE vengono effettuati confronti in base alle regole di confronto dell'input. Per eseguire un confronto in regole di confronto specificate, è possibile utilizzare 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 abcdefghi viene sostituita da xxx.
SELECT REPLACE('abcdefghicde','cde','xxx');
GO
Set di risultati:
------------
abxxxfghixxx
(1 row(s) affected)
Nell'esempio seguente viene utilizzata la funzione COLLATE.
SELECT REPLACE('Das ist ein Test' COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO
Set di risultati:
------------
Das ist ein desk
(1 row(s) affected)