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 Замечания по использованию
- Входное выражение в качестве первого аргумента функции SQL SUBSTRING может быть символом, текстом, двоичным значением или изображением.
- Start в качестве второго аргумента функции SUBSTRING указывает индекс или позицию, с которой начинается извлечение подстроки. Если начальное значение превышает длину входного выражения, SUBSTRING возвращает пустую подстроку нулевой длины. Если начальное значение отрицательное, функция вычисляет значение start+length-1. В случае, если значение меньше нуля, функция возвращает пустую строку. В противном случае функция SUBSTRING возвращает символы из входного выражения, равные значению start+length-1.
- Длина в качестве последнего аргумента функции SQL SUBSTRING указывает количество символов во входном выражении, которое возвращается в качестве вывода. Это положительное целое значение. В случае отрицательного значения возвращается ошибка. Если длина входного выражения, начинающегося с начальной позиции, меньше длины аргумента, то возвращается все входное выражение с начальной позиции.
- Тип выходных данных — 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, существует три основных типа:
- Символьный тип данных: если выражение может иметь тип данных char, тогда оно возвращает символьные данные и имеет указанное выражение как char/varchar/text.
- Двоичный тип данных: если выражение имело двоичный тип данных, то оно вернет двоичные данные, в которых будет выражение, nchar/nvarchar/ntext.
- Строковый тип данных: если указанное выражение содержало исключение как 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.