PostgreSQL Функция SUBSTRING() с примером регулярного выражения

Что такое PostgreSQL Подстрока?

Команда PostgreSQL Функция подстроки помогает вам извлечь и вернуть часть строки. Вместо возврата всей строки он возвращает только ее часть.

Синтаксис

Команда PostgreSQL Функция подстроки имеет следующий синтаксис:

substring( string [from starting_position] [for length] )

параметры

Имя Описание
string Исходная строка с типом данных varchar, char, string и т. д.
Начальная позиция Это необязательный параметр. Он обозначает место, где начнется извлечение строки. Если вы опустите этот параметр, извлечение начнется с позиции 1, которая является первым символом в строке.
Это необязательный параметр. Он обозначает количество символов, которые необходимо извлечь из строки. Если вы опустите этот параметр, функция будет извлекать строку от начальной_позиции до конца.

Примеры

В этом примере мы хотим извлечь первые 4 символа из слова Guru99:

SELECT substring('Guru99' for 4);

Команда вернет следующее:

PostgreSQL Substring

Мы не указали начальную позицию, поэтому извлечение подстроки начинается с позиции 1. Для возврата вышеуказанного было извлечено 4 символа.

В следующем примере показано, как указать начальную позицию:

SELECT substring('Guru99' from 1 for 4);

Команда вернет следующее:

PostgreSQL Substring

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

Давайте выделим 99 из строки Guru99:

SELECT substring('Guru99' from 5);

Команда вернет следующее:

PostgreSQL Substring

Мы указали начальную позицию как 5. Поскольку количество извлекаемых символов не было указано, извлечение продолжалось до конца строки.

Вот еще один пример:

SELECT substring('Guru99' from 5 for 2);

Команда вернет следующее:

PostgreSQL Substring

Мы начали извлечение с позиции 5, и были извлечены 2 символа.

Рассмотрим таблицу книги, приведенную ниже:

PostgreSQL Substring

Мы хотим получить приблизительное представление о названии каждой книги. Однако мы можем извлечь только первые 15 символов из столбца имени таблицы:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Команда вернет следующее:

PostgreSQL Substring

Теперь у нас есть приблизительное представление о названии каждой книги.

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

In PostgreSQL, мы можем извлечь подстроку, соответствующую указанному регулярному выражению POSIX. В этом случае функция substring используется со следующим синтаксисом:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Вот объяснение вышеуказанных параметров:

Строка — это исходная строка, чья тип данных это varchar, char, string и т. д.

Match_pattern — это шаблон, который будет использоваться для поиска в строке.

Примеры

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Команда вернет следующее:

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

Наша входная строка — ваш возраст — 22 года. В шаблоне мы ищем числовой шаблон в нашей строке. Когда он найден, функция подстроки должна извлечь только два символа.

Как сопоставить подстроки с помощью pgAdmin

Теперь посмотрим, как выполняются действия с помощью pgAdmin.

Вышеупомянутые запросы, для которых нам не нужна база данных, можно выполнить непосредственно из окна редактора запросов. Просто сделайте следующее:

Шаг 1) Войдите в свою учетную запись.
Войдите в свою учетную запись pgAdmin.

Шаг 2) В pgAdmin,
Нажмите значок Инструмента запросов.

Сопоставление подстрок с помощью pgAdmin

Откроется окно редактора запросов.

Шаг 3) Введите запрос.
Введите следующий запрос в окне редактора.

SELECT substring('Guru99' for 4);

Шаг 4) Выполнить запрос
Нажмите значок «Выполнить», чтобы выполнить запрос.

Сопоставление подстрок с помощью pgAdmin

Шаг 5) Выполнение запроса завершено.
Он должен вернуть следующее:

Сопоставление подстрок с помощью pgAdmin

Пример 2:

SELECT substring('Guru99' from 1 for 4);

Он должен вернуть следующее:

Сопоставление подстрок с помощью pgAdmin

Вот следующий пример:

SELECT substring('Guru99' from 5);

Он должен вернуть следующее:

Сопоставление подстрок с помощью pgAdmin

Пример 3:

SELECT substring('Guru99' from 5 for 2);

Он должен вернуть следующее:

Сопоставление подстрок с помощью pgAdmin

Теперь давайте запустим пример, используя таблицу Book демонстрационной базы данных:

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите «Базы данных».
  2. Нажмите Демо.

Сопоставление подстрок с помощью pgAdmin

Шаг 3) Введите запрос в редакторе запросов:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Шаг 4) Нажмите кнопку «Выполнить».

Сопоставление подстрок с помощью pgAdmin

Он должен вернуть следующее:

PostgreSQL Substring

Теперь у нас есть общее представление о названии каждой книги.

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

Чтобы сделать то же самое в pgAdmin, выполните следующие действия:

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2) Нажмите значок Инструмента запросов.

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

Откроется окно редактора запросов.

Шаг 3) Введите следующий запрос в окне редактора.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Шаг 4) Нажмите значок «Выполнить», чтобы выполнить запрос.

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

Он должен вернуть следующее:

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

Резюме

  • Команда PostgreSQL Функция Substring помогает извлечь и вернуть только часть строки.
  • Первый символ строки находится на позиции 1.
  • Если количество символов, извлекаемых из строки, не указано, функция будет извлекать символы от указанной начальной позиции до конца строки.
  • Если указано количество извлекаемых символов, будет извлечено только это количество символов.

Загрузите базу данных, используемую в этом руководстве.