Функции TRIM, LTRIM и RTRIM в T-SQL – описание, отличия и примеры

Приветствую всех посетителей сайта Info-Comp.ru! Сегодня мы с Вами поговорим о строковых функциях языка T-SQL, в частности о TRIM, LTRIM и RTRIM, Вы узнаете, как работают эти функции и чем они отличаются друг от друга, кроме этого мы разберём несколько примеров их использования.

Функции TRIM, LTRIM и RTRIM в T-SQL – описание, отличия и примеры

Строковые функции в Microsoft SQL Server

Строковые функции – это функции языка T-SQL, предназначенные для работы со строками, иными словами, с текстовыми значениями в столбцах, т.е. эти функции выполняют различные операции над текстом.

В Microsoft SQL Server существует достаточно много строковых функций, которые выполняют различные операции над текстом, например:

  • LOWER – функция возвращает строку, в которой все символы верхнего регистра преобразованы в символы нижнего регистра;
  • UPPER – функция возвращает строку, в которой все символы нижнего регистра преобразованы в символы верхнего регистра;
  • LEN – функция возвращает количество символов указанного строкового выражения, исключая конечные пробелы;
  • LEFT – функция возвращает указанное число символов символьного выражения слева;
  • RIGHT – функция возвращает указанное число символов символьного выражения справа;
  • SUBSTRING – функция возвращает часть строки, начиная с указанной позиции и определенное количество символов;
  • REPLACE – заменяет все вхождения указанного строкового значения другим строковым значением;
  • И другие.

Сегодня, как было уже отмечено, мы подробно рассмотрим функции: TRIM, LTRIM и RTRIM.

Заметка! Типы функций в языке T-SQL.

Исходные данные для примеров

Чтобы наглядно было видно, как работают функции TRIM, LTRIM и RTRIM, давайте сначала создадим подходящие тестовые данные, которые мы будем использовать во всех примерах этой статьи.

Допустим, у нас будет таблица Goods, в которой два столбца: первый — ProductId с целочисленным типом данных, а второй — ProductName с текстовым типом данных, и этот столбец у нас будет содержать текст с пробелами, как в начале, так и в конце.

   
   --Создание таблицы
   CREATE TABLE Goods (
	ProductId INT IDENTITY(1,1) NOT NULL,
	ProductName VARCHAR(100) NULL
   );

   --Добавление данных в таблицу
   INSERT INTO Goods(ProductName)
	VALUES ('Системный блок'), -- Без пробелов
		   (' Клавиатура'),    -- Пробел в начале
		   ('Монитор '),       -- Пробел в конце
		   (' Планшет ');      -- Пробел и в начале, и в конце

   SELECT ProductId, ProductName
   FROM Goods;

Скриншот 1

Заметка! Если Вас интересует язык SQL, то рекомендую почитать книгу «SQL код» это самоучитель по языку SQL для начинающих программистов. В ней очень подробно рассмотрены основные конструкции языка.

Функция LTRIM в T-SQL

LTRIM – функция T-SQL, которая возвращает символьное выражение после удаления пробелов в начале строки. У функции один параметр, в котором мы указываем текстовую строку данных.

Синтаксис

   
   LTRIM (текст);

В функцию можно передать текстовую строку как в виде константной строки, так и в виде столбца таблицы или переменной.

Параметр, который передается в функцию, обязательно должен иметь текстовый тип данных, или тип, который может быть неявно преобразован в тип VARCHAR.

Возвращает функция результат с типом данных VARCHAR или NVARCHAR.

Давайте посмотрим на работу данной функции.

   
   SELECT ProductName AS [Исходное значение],
          LTRIM(ProductName) AS [LTRIM]
   FROM Goods;

Скриншот 2

Мы видим, что функция LTRIM удалила все пробелы слева, т.е. в начале строки.

Заметка! Какой инструмент использовать: SSMS, SSDT или Azure Data Studio?

Функция RTRIM в T-SQL

RTRIM – функция T-SQL, которая возвращает символьное выражение после удаления пробелов в конце строки. В качестве входящих данных RTRIM также принимает один параметр, т.е. непосредственно саму текстовую строку. Параметр должен иметь текстовый тип данных, или тип, который может быть неявно преобразован в тип VARCHAR.

Синтаксис

   
   RTRIM (текст);

В эту функцию также можно передать текстовую строку как в виде константной строки, так и в виде столбца таблицы или переменной.

Функция возвращает результат с типом данных VARCHAR или NVARCHAR.

Пример работы данной функции.

   
   SELECT ProductName AS [Исходное значение],
          RTRIM(ProductName) AS [RTRIM]
   FROM Goods;

Скриншот 3

В данном случае работа функции RTRIM не так заметна, как в случае с LTRIM, но пробелы справа были удалены.

Заметка! Чем отличаются функции от хранимых процедур в T-SQL.

Функция TRIM в T-SQL

TRIM – функция T-SQL, которая возвращает символьное выражение после удаления пробелов как в начале, так и в конце строки. Если быть точнее, функция удаляет символ пробела в начале и в конце строки, однако кроме этого она может удалять и другие символы, которые Вы укажете.

Данная функция появилась только в Microsoft SQL Server 2017, до этой версии, в случае если необходимо удалить пробелы и в начале, и в конце строки, то нужно использовать сочетание функций LTRIM и RTRIM, иными словами, работа функции TRIM эквивалента выражению

   
   LTRIM(RTRIM('Текстовая строка'));

Синтаксис

   
   TRIM ( [ characters FROM ] string );

Где,

  • Characters – литеральная строка, содержащая символ или символы, которые необходимо удалить. Если не указан этот параметр, по умолчанию будут удаляться пробелы;
  • String – символьное выражение, из которого следует удалить символы.

Тип данных результата, который возвращает функция TRIM, будет иметь тип данных параметра string.

Заметка! Конкатенация строк в T-SQL. Способы используемые в Microsoft SQL Server.

Пример удаления пробелов с помощью TRIM

   
   SELECT ProductName AS [Исходное значение],
          TRIM(ProductName) AS [TRIM]
   FROM Goods;

Скриншот 4

В этом примере мы удаляем пробелы как в начале, так и в конце значений столбца ProductName. Функция успешно отработала.

Пример удаления указанных символов с помощью TRIM

В данном случае давайте вместо пробелов удалим другие символы из строки, используя при этом все ту же функцию TRIM, например, просто окончание одного из текстовых значений, допустим «ок» у значения «Системный блок».

Для этого в функцию TRIM мы передадим в качестве параметра символы, которые необходимо удалить, укажем ключевое слово FROM, а после передадим столбец, содержащий текстовые данные.

   
   SELECT ProductName AS [Исходное значение],
          TRIM('ок' FROM ProductName) AS [TRIM_FROM]
   FROM Goods;

Скриншот 5

Мы видим, что окончание «ок» у значения «Системный блок» нет, это говорит о том, что функция TRIM отработала корректно, подтверждая тот факт, что она умеет удалять и другие символы из строки, отличные от пробелов.

Заметка! Для комплексного изучения языка SQL и T-SQL рекомендую пройти онлайн-курсы по T-SQL, на которых используется последовательная методика обучения и рассматриваются все объекты SQL Server и конструкции языка T-SQL.

На сегодня это все, надеюсь, материал был Вам интересен и полезен, пока!

Понравилась статья? Поделиться с друзьями:
Заметки IT специалиста
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.