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


TRIM (Transact-SQL)

Область применения: SQL Server 2017 (14.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики SQL Azure 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:

Внимание

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

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

Аргументы

[ 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. Удаление указанных символов из начала строки

Внимание

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

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

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

Вот результирующий набор.

# test .

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

Внимание

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

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

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

Вот результирующий набор.

.#     test

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

Внимание

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

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

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

Вот результирующий набор.

abc