STUFF (Transact-SQL)

Функция STUFF вставляет одну строку в другую. Она удаляет указанное количество символов первой строки в начальной позиции и вставляет на их место вторую строку.

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

Синтаксис

STUFF ( character_expression , start , length ,character_expression )

Аргументы

  • character_expression
    Выражение, содержащее символьные данные. Аргумент character_expression может быть константой, переменной или столбцом символьных или двоичных данных.

  • start
    Целочисленное значение, определяющее место начала удаления и вставки. Если аргументы start или length отрицательные, то возвращается значение NULL. Если значение аргумента start превышает длину character_expression, тогда возвращается значение NULL. Аргумент start может иметь тип bigint.

  • length
    Целочисленное выражение, которое определяет, какое количество символов следует удалить. Если значение аргумента length превышает длину первого аргумента character_expression, удаляются все символы вплоть до последнего в последнем character_expression. Аргумент length может иметь тип bigint.

Типы возвращаемых данных

Возвращает символьные данные, если аргумент character_expression имеет один из поддерживаемых символьных типов данных. Возвращает двоичные данные, если аргумент character_expression имеет один из поддерживаемых двоичных типов данных.

Замечания

Если начальная позиция или число удаляемых символов отрицательны или если начальная позиция превышает длину первой строки, возвращается пустая строка. Если число удаляемых символов превышает длину первой строки, удаление выполняется до первого символа первой строки.

Ошибка, которая возникает, если результат больше, чем максимальное значение, поддерживаемое типом возвращаемого параметра.

Примеры

Следующий пример иллюстрирует создание строки abcdef после удаления из нее трех символов, начиная с позиции 2, с символа b и вставки второй строки в место удаления.

SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO

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

--------- 
aijklmnef 

(1 row(s) affected)