PostgreSQL SUBSTRING() Функция с Пример за Regex
⚡ Умно обобщение
PostgreSQL ПОДНИЗ extracts и връща част от низ, използвайки опционална начална позиция и дължина, а също така съпоставя текст с POSIX регулярен израз, за да извлече модели като числа или кодове.

Какво е PostgreSQL Подниз?
- PostgreSQL Функцията за подниз ви помага даtract и връща част от низ. Вместо да връща целия низ, връща само част от него, което е полезно за изрязване на кодове и четене на полета с фиксирана ширина.
Синтаксис
- PostgreSQL функцията подниз приема следния синтаксис:
substring( string [from starting_position] [for length] )
параметри
Следните параметри се използват с функцията substring:
| низ | Изходният низ, чийто тип данни е varchar, char, string и т.н. |
| начална_позиция | Незадължителен параметър. Той обозначава мястото, където ехtracИзписването на низа ще започне. Ако пропуснете този параметър, ексtracНизът започва от позиция 1, която е първият символ в него. |
| Дължината | Незадължителен параметър. Той обозначава броя на символите, които ще бъдат извлечени.tracted от низа. Ако пропуснете този параметър, функцията extracts от начална_позиция до края на низа. |
Примери
В този пример искаме даtracпървите 4 знака от думата Guru99:
SELECT substring('Guru99' for 4);
Командата ще върне следното:
Не уточнихме началната позиция, така че бившиятtracИзвеждането на подниз, започващ от позиция 1. Четири символа бяха изключениtracted да върне резултата по-горе.
Следният пример показва как да посочите началната позиция:
SELECT substring('Guru99' from 1 for 4);
Командата ще върне следното:
Уточнихме, че бившиятtracПоднизът трябва да започва от позиция 1 и 4 символа трябва да бъдатtracТед.
Нека бъдем бившиtract 99 от низа Guru99:
SELECT substring('Guru99' from 5);
Командата ще върне следното:
Зададохме началната позиция като 5. Тъй като броят на символите, които ще бъдат извлечени,tracТед не беше посочен, бившиятtracцията стигна до края на връвта.
Ето още един пример:
SELECT substring('Guru99' from 5 for 2);
Командата ще върне следното:
Започнахме бившето сиtracция на позиция 5 и 2 символа бяха изключениtracТед.
Разгледайте таблицата на книгата, дадена по-долу:
Искаме да добием приблизителна представа за името на всяка книга. Можем да предположимtracсамо първите 15 знака от колоната с име на таблицата:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
Командата ще върне следното:
Вече имаме груба представа за името на всяка книга.
Съпоставяне на поднизове с SQL регулярен израз
In PostgreSQL, можеш да бъдешtracподниз, който съответства на зададен 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;
Командата ще върне следното:
Входният ни низ е „Вашата възраст е 22“. В шаблона търсим числов шаблон; когато той бъде намерен, функцията за подниз extracсамо два знака.
Как да съпоставим поднизове с помощта на pgAdmin
Сега нека видим как се извършват тези действия с помощта на pgAdmin. Заявките, които не се нуждаят от база данни, могат да се изпълняват директно от прозореца на редактора на заявки. Просто направете следното:
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2) В pgAdmin щракнете върху иконата на инструмента за заявки.
Ще се отвори прозорецът на редактора на заявки.
Стъпка 3) Въведете следната заявка в прозореца на редактора.
SELECT substring('Guru99' for 4);
Стъпка 4) Щракнете върху иконата Изпълнение, за да изпълните заявката.
Стъпка 5) Изпълнението на заявката е завършено. Трябва да се върне следното:
Пример 2:
SELECT substring('Guru99' from 1 for 4);
Трябва да върне следното:
Ето следващия пример:
SELECT substring('Guru99' from 5);
Трябва да върне следното:
Пример 3:
SELECT substring('Guru99' from 5 for 2);
Трябва да върне следното:
Сега нека изпълним примера с помощта на таблицата Book на базата данни Demo:
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2) От навигационната лента вляво щракнете върху Бази данни, след което щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
Стъпка 4) Щракнете върху бутона Изпълнение.
Трябва да върне следното:
Вече имаме основна представа за името на всяка книга.
Съпоставяне на поднизове с SQL регулярен израз
За да постигнете същото на pgAdmin, направете следното:
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2) Щракнете върху иконата на инструмента за заявки.
Ще се отвори прозорецът на редактора на заявки.
Стъпка 3) Въведете следната заявка в прозореца на редактора.
SELECT SUBSTRING ( 'Your age is 22', '([0-9]{1,2})' ) as age;
Стъпка 4) Щракнете върху иконата Изпълнение, за да изпълните заявката.
Трябва да върне следното:
Изтеглете базата данни, използвана в този урок



















