Функция языка SQL SUBSTRING

Функция SUBSTRING в SQL-запросах чаще всего используется при работе с текстовыми данными - она отвечает за "обрезку" передаваемой в неё строки.

Синтаксис

Как и в большинстве языков программирования, включая ORACLE и MS SQL, SUBSTRING включает в себя три параметра. Первым аргументом функции является сама входная строка - её можно как явно прописать, так и получить в результате выполнения некоторого запроса. Далее следуют два числовых параметра - стартовый символ, с которого и произойдет обрез, и непосредственно длина - число символов, которые требуется считать, начиная со стартовой позиции.

sql substring

Структура запроса на языке SQL выглядит следующим образом :

SUBSTRING( "некоторая строка", 1, 3)

Результатом выполнения данного запроса будет строка "еко" - в SQL функция SUBSTRING определяет элементы, начиная с нулевого, которым, в данном примере, является буква "н". Стоит отметить, что при указании отрицательной длины СУБД выдаст ошибку, а при выборе значения, превышающего разницу между номером последнего символа и стартовым номером, результатом запроса будет цепочка символом от указанной позиции до конца строки.

Пример

В языках SQL SUBSTRING редко используют для выполнения простых запросов - в основном функция применяется как часть сложного алгоритма. Тем не менее, существуют и достаточно простые задачи с её участием. Так, например, если требуется создать категорию пользователей, аналогичную первой букве их фамилии, то SUBSTRING позволит обойтись без вспомогательного разбиения строки.

SELECT Addres, SUBSTRING(LastName, 1, 1) AS FirstChar FROM Clients

Таким образом, можно создать упрощённый телефонный справочник, где для получения всего списка пользователей, чьи фамилии начинаются на определённую букву, будет достаточно сделать выборку по полю FirstChar.

ms sql substring

Более реалистичным примером является создание готового сокращённого варианта имени пользователя - то есть в качестве результата запроса должна вернуться фамилия с инициалом клиента.

SELECT LastName & ' ' & SUBSTRING(FirstName, 1, 1) & '.' AS Initial FROM Clients

Стоит отметить, что SQL SUBSTRING одинаково успешно работает как с текстовыми полями, так и с числовыми.

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.