T sql substring: SUBSTRING (Transact-SQL) — SQL Server

Функция SQL SUBSTRING (Transact SQL)

Автор: Kris Wenzel   | Обновлено: 6 марта 2022 г.  

Работает с:

Описание

Функция SQL SUBSTRING извлекает часть входного выражения или «подстроку» и возвращает ее. Начальная позиция и длина подстроки передаются в качестве аргументов функции SUBSTRING.

Функция SUBSTRING используется для возврата символов из другой строки.

Общая форма функции SUBSTRING:

 ПОДСТРОКА ( значение ,  позиция ,  длина ) 

Где значение — это строка, с которой вы работаете, позиция — это символ, с которого начинается возврат символов, а длина — это количество возвращаемых символов.

Если длина отрицательная, возвращается ошибка.

Если либо позиция , либо длина равны NULL, то возвращается NULL.

SUBSTRING Пример

Например,

 ПОДСТРОКА('SQL Server',5,3) 

возвращает «Сер». Это последовательность из трех символов, начинающаяся с пятой позиции.

SUBSTRING — это обобщенная форма функций LEFT и RIGHT.

Дополнительный балл — Покажите, как LEFT и RIGHT можно использовать вместе для имитации SUBSTRING. Покажите свой ответ в комментариях ниже.

LEFT(‘SQL Server’,4) и SUBSTRING(‘SQL Server’,1,4) возвращают первые четыре символа.

ПРАВО немного сложнее!

ПРАВО(‘SQL Server’,4) можно записать как SUBSTRING(‘SQL Server’,7,4)

В котором говорится, что нужно начинать с позиции 7 th , а затем возвращать следующие четыре символа. Общая форма для этого, поскольку вы не всегда будете знать длину значения, —

.

 ПОДСТРОКА('SQL Server', LEN('SQL Server')-4, 4) 

Вот пример использования столбцов SQL.

 ВЫБЕРИТЕ ЛЕВЫЙ(Имя,2) как Левый2,
       SUBSTRING(Имя, 1, 2) как Substring2,
       ПРАВО(Имя,3) как Right3,
       SUBSTRING(имя, LEN(имя)-2,3) как Substring3
ИЗ Производство. Товар 

Чьи результаты

Результаты, показывающие SUBSTRING, такие же, как LEFT и RIGHT

SQL SUBSTRING Замечания по использованию

  1. Входное выражение в качестве первого аргумента функции SQL SUBSTRING может быть символом, текстом, двоичным значением или изображением.
  2. Start в качестве второго аргумента функции SUBSTRING указывает индекс или позицию, с которой начинается извлечение подстроки. Если начальное значение превышает длину входного выражения, SUBSTRING возвращает пустую подстроку нулевой длины. Если начальное значение отрицательное, функция вычисляет значение start+length-1. В случае, если значение меньше нуля, функция возвращает пустую строку. В противном случае функция SUBSTRING возвращает символы из входного выражения, равные значению start+length-1.
  3. Длина в качестве последнего аргумента функции SQL SUBSTRING указывает количество символов во входном выражении, которое возвращается в качестве вывода. Это положительное целое значение. В случае отрицательного значения возвращается ошибка. Если длина входного выражения, начинающегося с начальной позиции, меньше длины аргумента, то возвращается все входное выражение с начальной позиции.
  4. Тип выходных данных — varchar для varchar, char и текстового выражения ввода. Для двоичного, varbinary и входного изображения возвращаемый тип данных — varbinary.

Синтаксис

ПОДСТРОКА (входное_выражение, начало, длина)

SQL SUBSTRING Примеры

Мы будем использовать базу данных AdventureWorks2019 для всех примеров.

В следующем примере показано, как работает простая функция SQL SUBSTRING.

Запрос извлекает три символа, начиная с позиции один, и возвращает их в виде выходной строки.

Теперь посмотрим, какая будет выходная строка, если начальное значение в SUBSTRING отрицательное.

Функция вычисляет значение start+length-1. -1+3-1 = 1 и больше нуля, SQL SUBSTRING извлекает один символ из начала входной строки. Выход с.

Если start+length-1 равно нулю или меньше нуля, возвращается пустая строка, как показано в примере ниже.

Запрос возвращает пустую строку, поскольку значение -3+3-1 равно -1.

Теперь давайте применим функцию SQL SUBSTRING к столбцу базы данных.

Приведенный выше запрос извлекает первые три цифры из каждого значения в столбце телефонных номеров таблицы PersonPhone. Эти значения возвращаются в виде кода города для каждого телефонного номера.

Для входного выражения изображения мы получаем возвращаемый тип varbinary. В следующем примере мы извлекаем подстроку из значений столбца LargePhoto. Тип данных LargePhoto — varbinary(MAX).

Запрос извлекает первые десять значений из каждого двоичного значения изображения и возвращает их в виде выходных фотографий.

См. также

  • Введение в строковые функции SQL Server
  • SQL STUFF
  • Рекомендуемая книга: Практические задачи SQL: 57 начальных, промежуточных и продвинутых задач, которые вы должны решить, используя подход «обучение на практике»

Подстрока T-SQL | Что такое подстрока T-SQL?

Подстрока T-SQL — это функция, которая подтверждает, что пользователь извлекает подстроку из предоставленной строки в соответствии с требованиями пользователя, чтобы он мог получить строку определенной длины, которая может начинаться из предоставленного местоположения. Основной целью функции Substring() является возврат определенной части строки. Он принимает три аргумента: выражение, которое является источником строки, в которой мы можем получить подстроку, начальную позицию, которая может определить место в выражении, откуда может начинаться новая строка, и общая длина — это ожидаемая длина результирующей строки. подстрока.

Что такое подстрока T-SQL?

Substring() — это функция в T-SQL, которая может разрешить пользователю получить подстроку из предоставленной группы строк в соответствии с требованиями пользователя. Полученная подстрока может иметь определенную длину и может начинаться с заданного места во входной строке, поэтому мы можем сказать, что подстрока может возвращать определенный раздел строки,

Синтаксис для substring():

 SUBSTRING( Выражение, Начальная позиция, Общая длина) 

Где,

  • Выражение. Это может быть любой символ, двоичный файл или текст, который может быть источником строки, в которой мы можем получить подстроку в соответствии с требованием.
  • Начальная позиция: может указать позицию в выражении, с которой будет начинаться новая строка.
  • Общая длина: это общая ожидаемая длина результирующей подстроки, которая может начинаться с начальной позиции.

Как использовать подстроку T-SQL?

Давайте посмотрим на примеры, чтобы понять, как использовать подстроку T-SQL. Если у нас есть строка столбца, и мы должны получить из нее подстроку,

Пример #1

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

Столбец электронной почты таблицы:

Код :

 ВЫБЕРИТЕ адрес электронной почты, ПОДСТРОКА (адрес электронной почты, 1, 6) КАК подстрока ОТ сотрудника; 

Вывод:

В приведенном выше примере мы использовали функцию SUBSTRING, в которой первым аргументом является строка, вторым аргументом является индекс символа, с которого начинается строка, а третьим является длина, которая нам требуется, поэтому она даст строку, имеющую столбец электронной почты, который имеет первые шесть символов данной строки.

Пример #2

Давайте посмотрим, как показать подстроку между индексами 3 и 7,

Код:

 ВЫБЕРИТЕ адрес электронной почты, ПОДСТРОКА (адрес электронной почты, 3, 7) КАК подстрока ОТ сотрудника; 

Вывод:

В приведенном выше примере мы использовали функцию SUBSTRING () и использовали второй аргумент 3, потому что мы должны начать индекс с 3 с длиной 7, поэтому формула (end_index – start_index + 1) был применен.

Пример #3

Давайте посмотрим, как показать подстроку, которая начинается с «@» и заканчивается в конце строки без индекса и длины,

Код:

 ВЫБЕРИТЕ адрес электронной почты, ПОДСТРОКА (адрес электронной почты, СИМВОЛ ("@", электронная почта), ДЛСТР (адрес электронной почты) – СИМВОЛ ("@", адрес электронной почты) + 1) КАК подстрока ОТ сотрудника; 

Вывод:

В приведенном выше примере мы использовали функцию Substring(), в которой мы должны искать специальный символ, поэтому для этого мы использовали функцию «CHARINDEX (символ, столбец)», в которой символ — это специальный символ, с которого начинается подстрока, а аргументом будет столбец, из которого мы можем получить подстроку, а третий аргумент функции SUBSTRING() — это длина подстроки, которую мы можем определить с помощью CHARINDEX(). и LEN(), которую мы можем выполнить, вычитая индекс из длины столбца и добавляя один, как указано ниже,

 «LEN (электронная почта) – CHARINDEX («@», электронная почта) + 1» 

, и мы можем получить подстроку, которая не будет заканчиваться в конце строки, а на специальном символе, например, перед «.» ,

 «ВЫБЕРИТЕ адрес электронной почты, ПОДСТРОКА (адрес электронной почты, CHARINDEX («@», электронная почта), CHARINDEX ('.', электронная почта) – CHARINDEX («@», адрес электронной почты)) КАК подстрока ОТ сотрудника;» 

Вывод:

В котором CHARINDEX (‘.’, электронная почта) – CHARINDEX («@», электронная почта) может вычислить длину подстроки.

Типы подстроки T-SQL

Давайте посмотрим типы подстроки в T-SQL, существует три основных типа:

  1. Символьный тип данных: если выражение может иметь тип данных char, тогда оно возвращает символьные данные и имеет указанное выражение как char/varchar/text.
  2. Двоичный тип данных: если выражение имело двоичный тип данных, то оно вернет двоичные данные, в которых будет выражение, nchar/nvarchar/ntext.
  3. Строковый тип данных: если указанное выражение содержало исключение как binary/varbinary/image, тогда оно возвращает строковый тип данных.

Примеры:

  • Использование SUBSTRING со строкой символов:

Давайте рассмотрим пример, который возвращает только часть строки символов, он возвращает имя системной базы данных из sys. база данных в первом столбце таблицы, первая буква имени базы данных во втором столбце и четвертый символ в третьем столбце соответственно,

 «SELECT name, SUBSTRING(name, 1, 1) AS Initial ,SUBSTRING( имя, 3, 2) AS SecondAndThirdCharacters FROM sys.databases WHERE database_id < 5;”
ГДЕ database_id < 5;” 

Вывод будет следующим:

имя Начальный номер Второй и третий символ
мастер м как
временная база данных т эм
модель м или
msdb м сд
  • Давайте посмотрим, как отобразить второй, третий и четвертый символы константной строки «ijklmn».

Код:

 «SELECT x= SUBSTRING (‘ijklmn’, 2, 3)» 

Вывод будет:

  • Использование SUBSTRING с данными текста, ntext и изображения:

Давайте рассмотрим пример того, как вернуть первые 10 символов из каждого заданного столбца данных текста и изображения в таблице stud_id базы данных stud. Текстовые данные могут быть возвращены как varchar, а данные изображения будут возвращены как varbinary,

«Шпилька ЕГЭ;

 ВЫБЕРИТЕ stu_id, ПОДСТРОКА (логотип, 1, 10) КАК логотип, ПОДСТРОКА (pr_info, 1, 10) КАК pr_info ОТ stu_info ГДЕ stu_id = '1756';” 

Вывод будет выглядеть следующим образом:

Заключение

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