Приветствую всех посетителей сайта Info-Comp.ru! Сегодня мы с Вами поговорим о строковых функциях языка T-SQL, в частности о TRIM, LTRIM и RTRIM, Вы узнаете, как работают эти функции и чем они отличаются друг от друга, кроме этого мы разберём несколько примеров их использования.
Строковые функции в 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;
Заметка! Если Вас интересует язык SQL, то рекомендую почитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов. В ней очень подробно рассмотрены основные конструкции языка.
Функция LTRIM в T-SQL
LTRIM – функция T-SQL, которая возвращает символьное выражение после удаления пробелов в начале строки. У функции один параметр, в котором мы указываем текстовую строку данных.
Синтаксис
LTRIM (текст);
В функцию можно передать текстовую строку как в виде константной строки, так и в виде столбца таблицы или переменной.
Параметр, который передается в функцию, обязательно должен иметь текстовый тип данных, или тип, который может быть неявно преобразован в тип VARCHAR.
Возвращает функция результат с типом данных VARCHAR или NVARCHAR.
Давайте посмотрим на работу данной функции.
SELECT ProductName AS [Исходное значение], LTRIM(ProductName) AS [LTRIM] FROM Goods;
Мы видим, что функция 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;
В данном случае работа функции 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;
В этом примере мы удаляем пробелы как в начале, так и в конце значений столбца ProductName. Функция успешно отработала.
Пример удаления указанных символов с помощью TRIM
В данном случае давайте вместо пробелов удалим другие символы из строки, используя при этом все ту же функцию TRIM, например, просто окончание одного из текстовых значений, допустим «ок» у значения «Системный блок».
Для этого в функцию TRIM мы передадим в качестве параметра символы, которые необходимо удалить, укажем ключевое слово FROM, а после передадим столбец, содержащий текстовые данные.
SELECT ProductName AS [Исходное значение], TRIM('ок' FROM ProductName) AS [TRIM_FROM] FROM Goods;
Мы видим, что окончание «ок» у значения «Системный блок» нет, это говорит о том, что функция TRIM отработала корректно, подтверждая тот факт, что она умеет удалять и другие символы из строки, отличные от пробелов.
Заметка! Для комплексного изучения языка SQL и T-SQL рекомендую пройти онлайн-курсы по T-SQL, на которых используется последовательная методика обучения и рассматриваются все объекты SQL Server и конструкции языка T-SQL.
На сегодня это все, надеюсь, материал был Вам интересен и полезен, пока!