Поделиться через


REPLACE (Transact-SQL)

Заменяет все вхождения указанного строкового значения другим строковым значением.

Значок ссылки на раздел Синтаксические обозначения Transact-SQL

Синтаксис

REPLACE ( string_expression , string_pattern , string_replacement )

Аргументы

  • string_expression
    Строковое выражение, в котором выполняется поиск. string_expression может иметь либо символьный, либо двоичный тип данных.

  • string_шаблон
    Подстрока для поиска. string_pattern может иметь либо символьный, либо двоичный тип данных. string_pattern не может быть пустой строкой ('') и не может превышать максимальное число байтов, которое может уместиться на странице.

  • замена string_
    Строка замещения. 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 в строке abcdefghi заменяется на xxx.

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

Ниже приводится результирующий набор.

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

Следующий пример иллюстрирует использование функции COLLATE.

SELECT    REPLACE('Das ist ein Test'  COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO

Ниже приводится результирующий набор.

------------
Das ist ein desk
(1 row(s) affected)

См. также

Справочник

Типы данных (Transact-SQL)

Строковые функции (Transact-SQL)