PostgreSQL SUBSTRING() Функция с Пример за Regex

Какво е PostgreSQL Подниз?

- PostgreSQL функцията substring ви помага да извлечете и върнете част от низ. Вместо да връща целия низ, той връща само част от него.

Синтаксис

- PostgreSQL функцията подниз приема следния синтаксис:

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

параметри

Име Descriptйон
низ Изходният низ, чийто тип данни е varchar, char, string и т.н.
начална_позиция Това е незадължителен параметър. Той обозначава мястото, където ще започне извличането на низа. Ако пропуснете този параметър, извличането ще започне от позиция 1, която е първият знак в низа.
Дължината Това е незадължителен параметър. Той обозначава броя знаци, които трябва да бъдат извлечени от низа. Ако пропуснете този параметър, функцията ще извлече от начална_позиция до края на низа.

Примери

В този пример искаме да извлечем първите 4 знака от думата Guru99:

SELECT substring('Guru99' for 4);

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

PostgreSQL Подниз

Не сме посочили началната позиция, така че извличането на подниза започва от позиция 1. Бяха извлечени 4 знака, за да се върне горното.

Следният пример показва как да посочите началната позиция:

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

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

PostgreSQL Подниз

Уточнихме, че извличането на подниза трябва да започне от позиция 1 и трябва да бъдат извлечени 4 символа.

Нека извлечем 99 от низа Guru99:

SELECT substring('Guru99' from 5);

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

PostgreSQL Подниз

Зададохме началната позиция като 5. Тъй като броят знаци за извличане не беше посочен, извличането се проведе до края на низа.

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

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

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

PostgreSQL Подниз

Започнахме извличането на позиция 5 и бяха извлечени 2 знака.

Разгледайте таблицата на книгата, дадена по-долу:

PostgreSQL Подниз

Искаме да получим груба представа за името на всяка книга. Можем обаче да извлечем само първите 15 знака от колоната с име на таблицата:

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

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

PostgreSQL Подниз

Вече имаме груба представа за името на всяка книга.

Съпоставяне на поднизове с SQL регулярен израз

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

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Ето обяснение на горните параметри:

Низът е изходният низ, чийто тип данни е varchar, char, string и т.н.

Matching_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 на базата данни Demo:

Стъпка 1) Влезте във вашия pgAdmin акаунт.

Стъпка 2)

  1. От лентата за навигация вляво щракнете върху Бази данни.
  2. Щракнете върху Демо.

Съвпадащи поднизове с помощта на pgAdmin

Стъпка 3) Въведете заявката в редактора на заявки:

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

Стъпка 4) Щракнете върху бутона Изпълнение.

Съвпадащи поднизове с помощта на pgAdmin

Трябва да върне следното:

PostgreSQL Подниз

Вече имаме основна представа за името на всяка книга.

Съпоставяне на поднизове с SQL регулярен израз

За да постигнете същото на pgAdmin, направете следното:

Стъпка 1) Влезте във вашия pgAdmin акаунт.

Стъпка 2) Щракнете върху иконата на инструмента за заявки.

Съпоставяне на поднизове с SQL регулярен израз

Ще се отвори прозорецът на редактора на заявки.

Стъпка 3) Въведете следната заявка в прозореца на редактора.

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

Стъпка 4) Щракнете върху иконата Изпълнение, за да изпълните заявката.

Съпоставяне на поднизове с SQL регулярен израз

Трябва да върне следното:

Съпоставяне на поднизове с SQL регулярен израз

Oбобщение

  • - PostgreSQL Функцията Substring помага при извличане и връщане само на част от низ.
  • Първият символ на низа е на позиция 1.
  • Ако броят знаци, които трябва да бъдат извлечени от низа, не е посочен, функцията ще извлече знаци от указаната начална позиция до края на низа.
  • Ако е посочен броят знаци за извличане, само този брой знаци ще бъдат извлечени.

Изтеглете базата данни, използвана в този урок