Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Zastępuje wszystkie wystąpienia określonej wartości ciągu na inną wartość ciągu znaków.
Transact-SQL konwencje składni
Składnia
REPLACE ( string_expression , string_pattern , string_replacement )
Arguments
string_expression
To wyrażenie ciągowe, które należy przeszukać.
string_expression może być typu danych znakowych lub binarnych.
string_pattern
To podciąg, który można znaleźć.
string_pattern mogą być typu danych znakowych lub binarnych.
string_pattern nie może przekraczać maksymalnej liczby bajtów mieszczących się na stronie. Jeśli string_pattern jest pustym ciągiem (''), string_expression jest zwracany bez zmian.
string_replacement
To jest zastępczy sznur.
string_replacement może być typu danych znakowego lub binarnego.
Typy zwracane
Zwraca nvarchar , jeśli jeden z argumentów wejściowych należy do typu danych nvarchar ; w przeciwnym razie REPLACE zwraca varchar.
Zwraca NULL, jeśli którykolwiek z argumentów jest NULL.
Jeśli string_expression nie jest typu varchar(max) lub nvarchar(max), REPLACE skraca wartość zwrotną do 8 000 bajtów. Aby zwrócić wartości większe niż 8 000 bajtów, string_expression musi być jawnie przypisane do typu danych o dużej wartości.
Uwagi
REPLACE wykonuje porównania na podstawie zestawienia danych wejściowych. Aby przeprowadzić porównanie w określonej kolacji, możesz użyć COLLATE , aby zastosować jawną kolację do wejścia.
0x0000 (char(0)) to nieokreślony znak w zestawieniach Windows i nie może być włączony do REPLACE.
Przykłady
Poniższy przykład zastępuje ciąg cde w abcdefghicde na xxx.
SELECT REPLACE('abcdefghicde','cde','xxx');
GO
Oto zestaw wyników.
------------
abxxxfghixxx
(1 row(s) affected)
Poniższy przykład wykorzystuje COLLATE tę funkcję.
SELECT REPLACE('This is a Test' COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO
Oto zestaw wyników.
------------
This is a desk
(1 row(s) affected)
Poniższy przykład oblicza liczbę spacji w zdaniu za pomocą REPLACE funkcji. Po pierwsze, oblicza długość zdania z funkcją LEN . Następnie zastępuje znaki '' przez '' przez REPLACE. Po tym procesie ponownie oblicza długość zdania. Powstała różnica to liczba znaków spacji w zdaniu.
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
Oto zestaw wyników.
------------
Number of spaces in the sentence: 7
(1 row(s) affected)
Zobacz też
CONCAT (Transact-SQL)
CONCAT_WS (Transact-SQL)
FORMATMESSAGE (Transact-SQL)
CYTAT (Transact-SQL)
ODWRÓT (Transact-SQL)
STRING_AGG (Transact-SQL)
STRING_ESCAPE (Transact-SQL)
RZECZY (Transact-SQL)
TŁUMACZ (Transact-SQL)
typy danych (Transact-SQL)
funkcje ciągów (Transact-SQL)