Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Nahrazuje všechny výskyty dané hodnoty řetězce jinou hodnotou řetězce.
Syntaxe
REPLACE ( string_expression , string_pattern , string_replacement )
Arguments
string_expression
Je řetězcový výraz , který má být vyhledán.
string_expression může být znaku nebo binárního datového typu.
string_pattern
je podřetězec, který lze najít.
string_pattern může být znaku nebo binárního datového typu.
string_pattern nesmí překročit maximální počet bajtů, které se vejdou na stránku. Pokud je string_pattern prázdný řetězec (''), string_expression se vrátí beze změny.
string_replacement
Je náhradní provázek.
string_replacement může být znaku nebo binárního datového typu.
Návratové typy
Vrací nvarchar , pokud jeden ze vstupních argumentů patří datovému typu nvarchar ; jinak REPLACE vrátí varchar.
Vrátí NULL, pokud je některý z argumentů NULL.
Pokud string_expression není typu varchar(max) nebo nvarchar(max), REPLACE zkrátí návratovou hodnotu na 8 000 bajtů. Pro vrácení hodnot větších než 8 000 bajtů musí být string_expression explicitně přeneseny na datový typ s velkou hodnotou.
Poznámky
REPLACE provádí porovnání na základě hromadění vstupů. Pro provedení porovnání ve specifikované kolaci můžete použít COLLATE k explicitní kolaci vstupu.
0x0000 (char(0)) je nedefinovaný znak ve Windows třídění a nelze jej zahrnout do REPLACE.
Examples
Následující příklad nahrazuje řetězec cde v abcdefghicde za xxx.
SELECT REPLACE('abcdefghicde','cde','xxx');
GO
Tady je soubor výsledků.
------------
abxxxfghixxx
(1 row(s) affected)
Následující příklad používá funkci.COLLATE
SELECT REPLACE('This is a Test' COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO
Tady je soubor výsledků.
------------
This is a desk
(1 row(s) affected)
Následující příklad vypočítává počet mezer ve větě pomocí REPLACE funkce. Nejprve vypočítá délku věty pomocí LEN funkce. Poté nahradí znaky '' znakem '' za REPLACE. Po tomto procesu opět vypočítá délku věty. Výsledný rozdíl je počet znaků s mezerou ve větě.
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
Tady je soubor výsledků.
------------
Number of spaces in the sentence: 7
(1 row(s) affected)
Viz také
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)
Datové typy (Transact-SQL)
řetězcové funkce (Transact-SQL)