TRIM (Transact-SQL)

Область применения: SQL Server 2017 (14.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики Synapse Analytics Synapse Analyticsв хранилище Microsoft Fabricв Microsoft Fabric

Удаляет символ пробела char(32) или другие заданные символы в начале и конце строки.

При необходимости удаляет пробел char(32) или другие указанные символы из начальной, конечной или обеих сторон строки.

Начиная с SQL Server 2022 (16.x), при необходимости удаляет пробел char(32) или другие указанные символы из начала, конца или обеих сторон строки.

Соглашения о синтаксисе Transact-SQL

Синтаксис

Синтаксис SQL Server 2022 (16.x) и более ранних версий, База данных SQL Azure и Azure Synapse Analytics:

TRIM ( [ characters FROM ] string )

Синтаксис ДЛЯ SQL Server 2022 (16.x) и более поздних версий, Управляемый экземпляр SQL Azure и Microsoft Fabric:

Важно!

Для использования LEADINGTRAILINGключевое слово базы BOTH данных требуется 160 уровень совместимости базы данных.

TRIM ( [ LEADING | TRAILING | BOTH ] [characters FROM ] string )

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

[ LEADING | TRAILING | BOTH ]

Область применения: SQL Server 2022 (16.x) и более поздних версий, Управляемый экземпляр SQL Azure и Microsoft Fabric:

Необязательный первый аргумент указывает, какую сторону строки следует обрезать:

  • LEADING удаляет символы, указанные в начале строки.

  • TRAILING удаляет символы, указанные в конце строки.

  • BOTH (поведение по умолчанию) удаляет символы, указанные в начале и конце строки.

characters

Литерал, переменная или вызов функции любого типа символов, отличного от большого объекта (nvarchar, varchar, nchar или char), которые содержат удаляемые символы. Типы nvarchar(max) и varchar(max) не допускаются.

string

Выражение любого типа символа (nvarchar, varchar, nchar или char), где должны быть удалены символы.

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

Возвращает символьное выражение с типом аргумента string, в котором символ пробела char(32) или другие заданные символы удалены с обеих сторон. Возвращает NULL, если входная строка равна NULL.

Замечания

По умолчанию функция TRIM удаляет символ пробела как в начале, так и в конце строки. Такая реакция на событие эквивалентна LTRIM(RTRIM(@string)).

Чтобы включить необязательные LEADINGTRAILINGаргументы или BOTH позиционные аргументы в SQL Server 2022 (16.x), необходимо включить уровень 160 совместимости базы данных в базе данных, к которую вы подключаетесь при выполнении запросов.

  • При использовании необязательного позиционного аргумента LEADING поведение эквивалентно LTRIM(@string, characters).
  • При использовании необязательного позиционного аргумента TRAILING поведение эквивалентно RTRIM(@string, characters).

Примеры

А. Удаление пробела с обеих сторон строки

В приведенном ниже примере удаляются пробелы перед словом test и после него.

SELECT TRIM( '     test    ') AS Result;

Результирующий набор:

test

B. Удаление указанных символов с обеих сторон строки

В следующем примере представлен список возможных символов для удаления из строки.

SELECT TRIM( '.,! ' FROM '     #     test    .') AS Result;

Результирующий набор:

#     test

В этом примере удалены только конечная точка, а также пробелы перед символом # и после слова test. Другие символы были проигнорированы, так как их не было в строке.

C. Удаление указанных символов из начала строки

Важно!

Для использования LEADINGTRAILINGключевое слово базы BOTH данных требуется 160 уровень совместимости базы данных.

В следующем примере из начала строки удаляется начальный символ . перед словом test.

SELECT TRIM(LEADING '.,! ' FROM  '     .#     test    .') AS Result;

Результирующий набор:

# test .

D. Удаление указанных символов из конца строки

Важно!

Для использования LEADINGTRAILINGключевое слово базы BOTH данных требуется 160 уровень совместимости базы данных.

В следующем примере из конца строки удаляется конечный символ . после слова test.

SELECT TRIM(TRAILING '.,! ' FROM '     .#     test    .') AS Result;

Результирующий набор:

.#     test

Д. Удаление указанных символов из начала и конца строки

Важно!

Для использования LEADINGTRAILINGключевое слово базы BOTH данных требуется 160 уровень совместимости базы данных.

В следующем примере символы 123 удаляются из начала и конца строки 123abc123.

SELECT TRIM(BOTH '123' FROM '123abc123') AS Result;

Результирующий набор:

abc