Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Заменяет все вхождения указанного строкового значения другим строковым значением.
Соглашения о синтаксисе Transact-SQL
Синтаксис
REPLACE ( string_expression , string_pattern , string_replacement )
Аргументы
string_expression
Строковое выражение, в котором выполняется поиск.
string_expression может быть символьного или двоичного типа данных.
string_pattern
Подстрока для поиска.
string_pattern может быть символьного или двоичного типа данных.
string_pattern не может превышать максимальное число байт, которое может уместиться на странице. Если string_pattern является пустой строкой (''), string_expression возвращается без изменений.
string_replacement
Строка замещения. Аргумент string_replacement может содержать символьные или двоичные данные.
Типы возвращаемых данных
Возвращает значение типа nvarchar, если один из входных аргументов имеет тип данных nvarchar; в противном случае возвращает значение типа varchar.
Возвращает NULL, если какой-либо из аргументов имеет значение NULL.
Если string_expression не относится к типу varchar(max) или nvarchar(max), функция REPLACE усекает возвращаемое значение до 8000 байт. Для возврата значений, превышающих 8000 байт, аргумент string_expression должен быть явно приведен к типу данных с большими значениями.
Замечания
REPLACE производит сравнение, основанное на параметрах сортировки входных данных. Для выполнения сравнения в указанных параметрах сортировки можно воспользоваться функцией COLLATE, чтобы явно указать параметры сортировки для входных данных.
Символ 0x0000 (char(0)) не определен в параметрах сортировки Windows, и его нельзя включать в REPLACE.
Примеры
На следующем примере показано, как строка cde в строке abcdefghicde заменяется на xxx.
SELECT REPLACE('abcdefghicde','cde','xxx');
GO
Вот результирующий набор.
------------
abxxxfghixxx
(1 row(s) affected)
Следующий пример иллюстрирует использование функции COLLATE.
SELECT REPLACE('This is a Test' COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO
Вот результирующий набор.
------------
This is a desk
(1 row(s) affected)
В следующем примере вычисляется количество пробелов в предложении с помощью функции REPLACE. Сначала вычисляется длина предложения с помощью функции LEN. Затем символы ' ' заменяются символом " с помощью функции REPLACE. После этого снова вычисляется длина предложения. Полученная разность соответствует количеству пробелов в предложении.
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
Вот результирующий набор.
------------
Number of spaces in the sentence: 7
(1 row(s) affected)
См. также
CONCAT (Transact-SQL)
CONCAT_WS (Transact-SQL)
FORMATMESSAGE (Transact-SQL)
НАЗВАНИЕ ЦИТАТЫ (Transact-SQL)
РЕВЕРС (Transact-SQL)
STRING_AGG (Transact-SQL)
STRING_ESCAPE (Transact-SQL)
ВЕЩИ (Transact-SQL)
ПЕРЕВЕСТИ (Transact-SQL)
Типы данных (Transact-SQL)
Строковые функции (Transact-SQL)