Sql substring: SQL Server SUBSTRING() Function
Содержание
Лучший способ извлечь набор символов
У каждого человека, работающего с данными, свой подход к извлечению данных, в зависимости от того, как они хотят их использовать. SQL стремится предоставить нам способ извлечения данных в любом формате с помощью инструментов, таких как функция подстроки SQL. Эта функция позволяет нам извлекать определенные символы из строки.
Что такое подстрока в SQL?
SUBSTRING() — это функция, которая позволяет нам извлекать части строк, известные как подстроки. Строки, которые мы хотим извлечь, могут быть указаны в самой функции или могут быть частью столбцов таблицы.
С помощью этой функции мы можем извлечь из одной строки столько подстрок, сколько захотим.
Чтобы понять эту функцию, давайте рассмотрим синтаксис ее использования.
Синтаксис для использования функции подстроки SQL
SUBSTRING(строка, начало, длина) |
- Строковый параметр используется для указания элемента, из которого мы хотим извлечь символы.
- Параметр start используется для определения начальной позиции строки. Если это положительное число, функция начинается с начала строки, а если это отрицательное число, функция начинается с конца строки.
ПРИМЕЧАНИЕ. Первому символу строки из n символов присваивается значение 1, а последнему символу присваивается значение n. С конца последнему символу присваивается значение -1, а первому символу присваивается значение -n.
- Необязательный параметр длины используется для указания количества символов, которое мы хотим извлечь из строки. Без этого возвращается вся строка с начальной позиции.
Например, SUBSTRING(‘ABCDEF’, 2, 3) возвращает ‘BCD’.
Важные моменты, которые следует помнить
- Функция возвращает ошибку, если параметр длины не является положительным числом.
- Если начальная позиция, указанная в параметре start, больше длины исходной строки, функция возвращает пробел.
- Значение параметра длины может превышать длину исходной строки.
В этом случае вся строка будет возвращена из указанной начальной позиции.
- Обязательно указать строку и параметры запуска, без которых функция вернет синтаксическую ошибку.
Применим рассмотренные выше концепции к строкам и столбцам таблицы.
Функцию SUBSTRING() можно использовать с командой SELECT для извлечения подстрок.
- Чтобы извлечь пять символов из третьего символа указанной строки:
Любые пробелы также классифицируются как символы.
Это приведет к следующему:
Чтобы извлечь четыре символа с седьмой позиции с конца указанной строки, вам необходимо ввести следующее:
Как мы видим, «o» — это начальный символ извлекаемой четырехсимвольной строки.
Приведенный выше запрос приведет к следующему:
Чтобы извлечь всю строку из второго символа указанной строки, введите следующий код:
Это показывает, что для параметра длины не указано значение, поэтому будет возвращена вся строка, начиная с начальной позиции.
С помощью этой функции мы также можем извлекать символы из столбцов таблицы. Давайте посмотрим, как это делается.
Извлечение подстрок из столбцов таблицы
Синтаксис извлечения подстрок из столбцов таблицы следующий:
ВЫБЕРИТЕ ПОДСТРОКУ (имя_столбца, начало, длина) ОТ имя_таблицы ГДЕ [условие] |
- Подстрока извлекается из каждой строки столбца, указанного в параметре column_name.
- В предложении WHERE можно указать определенные условия для фильтрации извлекаемых строк.
ПРИМЕЧАНИЕ. Предложение WHERE является необязательным.
В качестве примера возьмем следующую таблицу:
- Чтобы извлечь последние три цифры «Dept_ID» для каждого сотрудника из этой таблицы, мы будем использовать следующий запрос:
Это приведет к следующему:
Кроме того, мы также можем использовать следующий запрос для получения указанного выше результата:
Здесь мы указали начальную позицию как третью позицию с конца. Нам не нужно указывать длину, так как нам нужны все символы из указанной начальной позиции.
Это приведет к следующему:
Это показывает, что результат совпадает с результатом предыдущего запроса.
- Чтобы извлечь идентификатор и первую букву имени каждого сотрудника с зарплатой выше 30000, используйте следующий код:
Это приведет к:
Условие, указанное в предложении WHERE приведенного выше запроса, отфильтровало количество возвращаемых строк.
- Давайте посмотрим, что происходит, когда начальная позиция больше, чем длина строки.
Чтобы извлечь все идентификаторы сотрудников из третьего символа, мы введем следующее:
Это приведет к следующему:
Для всех строк возвращается пробел, так как длина каждой из этих записей составляет два символа.
Иногда нам нужно всего несколько символов из всей строки данных, и функция подстроки SQL помогает выполнить эту задачу. Например, когда нам просто нужно знать первую букву чьего-то имени или когда достаточно двух последних цифр года, использование функции подстроки SQL является идеальным решением.
Получите опыт работы с новейшими инструментами и методами бизнес-аналитики с помощью программы «Бизнес-аналитика для принятия стратегических решений». Зарегистрируйтесь сейчас!
Следующие шаги
Теперь, когда вы знаете, как извлекать информацию в требуемом формате, пришло время начать манипулировать и извлекать данные из существующих баз данных или баз данных, которые вы создаете. Если вам понравилась эта статья и вы хотите пройти сертификацию, ознакомьтесь с нашей магистерской программой для бизнес-аналитиков, поскольку она охватывает SQL от А до Я.
ПОДСТРОК, ПОДСТРОКА | Документация Snowflake
- Категории:
Строковые и двоичные функции (сопоставление/сравнение)
Возвращает часть строки или двоичного значения из base_expr
, начиная с символа/байта, указанного start_expr
,
с опционально ограниченной длиной.
Эти функции являются синонимами.
- См. также
ЛЕВЫЙ, ПРАВЫЙ
Синтаксис
SUBSTR(, [ , ] ) ПОДСТРОКА(<базовое_выражение>, <начальное_выражение> [ , <длинное_выражение> ] )
Аргументы
-
base_expr
Это должно быть значение
VARCHAR
илиBINARY
.-
start_expr
Начальная позиция должна быть выражением, результатом которого является целое число. Он указывает смещение, с которого начинается подстрока. Смещение измеряется в:
Начальная позиция отсчитывается от 1, а не от 0.
SUBSTR('abc', 1, 1)
возвращает «a», а не «b».-
length_expr
Длина должна быть выражением, результатом которого является целое число. В нем должно быть указано:
Длина должна быть больше или равна нулю.
Если длина является отрицательным числом, функция возвращает
пустая строка.
Возвращает
Тип данных возвращаемого значения совпадает с типом данных base_expr
( BINARY
или VARCHAR
).
Замечания по использованию
Если используется
length_expr
, доlength_expr
символов/байт
возвращается, иначе все символы до конца строки или
бинарное значение возвращается.Значения в
start_expr
начинаются с 1:Если указан 0, он обрабатывается как 1.
Если указано отрицательное значение, начальная позиция вычисляется как
start_expr
символов/байт с конца строки или двоичного кода
ценить. Если позиция находится за пределами диапазона строки или двоичного файла
значение, возвращается пустое значение.
Если какой-либо из входных данных равен NULL, возвращается NULL.